scanf("%d%d",&a,&b)与scanf("%d%d\n",&a,&b)的区别

下面这段代码我将scanf("%d%d",&n,&m);改为scanf("%d%d\n",&n,&m);结果在运行界面输入35 94回车之后没有运行,再输入两个数之后运行了。
#include "stdio.h"
void main()
{
int n,m,a,b;
scanf("%d%d",&n,&m);
for(a=0;a<n;a++)
{ for(b=0;b<=n-a;b++)
{
if(n==a+b&m==2*a+4*b)
{
printf("%d,%d\n",a,b);
return 0;
}
}
}
printf("Error");
return 0;
}

scanf中,除了 %指定的数据,其他字符需要原样输入
scanf("%d%d\n",&n,&m), 意思就是先输入两个整数,再输入一个'\n',

但是在正常输入的时候, 回车被当作输入结束的标记,并没有被scanf收到,
于是scanf认为输入数据不全,继续等待.
当再次输入其他字符, scanf检测到输入的字符和'\n'不匹配,于是返回.
其实你不需要再输入两个数字,只要再输入任何一个不是空格的字符就可以了. 比如在第二个数字后面带个逗号.

但是这样的话,会影响下一次的输入, 因为那个逗号好没读走.

正确的方法是不要加最后那个'\n'
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-05
原因在于在scanf中使用\n并不表示要求输入一个回车符,而是指忽略一切空白符,直至下一个非空白符输入

(1)执行语句”scanf("%d%d,"&a,&b)与scanf“%d,%d"&a,&b")分别表达的...
(1),需要输入的方式不同,scanf("%d%d,"&a,&b)直接输入2个就行了。但是scanf("%d,%d,"&a,&b)则需要先输入一个,然后再输入“,”,再输入你想要输入的按键。(2)输出为 9 10。++i是先自加1,然后执行后面的语句。而j--是先做运算,再自减1。但是010默认为8进制。(3)正确的...

scanf("%d%d",&a,&b)与scanf("%d%d\\n",&a,&b)的区别
scanf中,除了 %指定的数据,其他字符需要原样输入 scanf("%d%d\\n",&n,&m), 意思就是先输入两个整数,再输入一个'\\n',但是在正常输入的时候, 回车被当作输入结束的标记,并没有被scanf收到,于是scanf认为输入数据不全,继续等待.当再次输入其他字符, scanf检测到输入的字符和'\\n'不匹配,于是返回....

scanf("%d%d",&a,&b)与scanf("%d,%d",&a,&b)的区别!!
1、scanf("%d%d",&a,&b)输入的两个数据用空格,TAB或者回车区分开。2、scanf("%d,%d",&a,&b) 输入的两个数据用逗号区分开。3、scanf函数功能是从外设读取数据并赋值给变量,%d代表接收一个整形数,&a代表变量a的内存地址,也就是说把读取的第一个整形数赋值给变量a。4、scanf函数称为格式...

scanf("%d")与scanf("%d")区别
但是scanf("%d,%d", &a,&b)和scanf("%d %d",&a,&b)就有区别了,前一个指定输入的时候以','为分隔符,其实就是分隔符的区别。如下面一段程序 include <stdio.h> int main(){ char a,b;scanf("%c,%c", &a ,&b);printf("%c %c\\n", a, b);return 0;} 运行输入 1,2 输...

c语言中语句scanf("%d,%d",&a,&b);什么意思?其中scanf什么意思?还有...
会在界面上让你输入两个数。 %d中的d表示输入的值是十进制数(decimal的首字母) " "引号中的是需要输入的格式,就你的例子,格式为:输入第一个十进制,加逗号,再输入一个十进制数,例如12,24 &a中的a则表示你输入的第一个十进制数将给a这个变量,即a=你输入的第一个十进制数 ...

C程序scanf("%d,%d",&a,&b);中的%d,%d和&a,&b是什么意思啊,请高手解释...
scanf表示从标准输入设备接收数据,通常是从键盘接受输入 "%d,%d"是格式字符串,描述要接收什么样的数据,接收几个 d表示要接收一个整型数据,写两遍表示要顺序接收两个整型数据,中间逗号表示这两个整型数据中间必须用逗号分隔,scanf在键盘上读取到逗号才会算是收到第2个整数,否则会失败,如果逗号不写...

scanf("%d%d",&a,&b); %d%d ,&a,&b 都是什么意思啊 谢谢 。
scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。其调用格式为: scanf("<格式化字符串>",<地址表>);函数 scanf() 是从标准输入流 stdin 中读内容的通用子程序,可以读入全部固有类型的数据并自动转换成机内形式。

C语言 scanf("%d,%d",&a,&b);每个字符都是什么意思啊
scanf表示的是c语言的输入方法,()内表示的是你输入的数据存放在哪里 scanf("%d,%d",&a,&b)的意思是输入2个整数,分别放在a,b中 "%d,%d"表示a与b都是整数,这个是有固定的格式的 scanf("%类型",&变量名);&表示取地址符,这样可以找到a,b的内存地址,把输入的数据放到a,b所对应的内存地址中...

scanf(〃%d,%d〃,&a,&b);是什么意思
就是输入a和b两个变量的值。“scanf()”是输入函数,“%d”是表示整型变量,“&”表示变量的地址。

C++的 scanf("%d%c%f",&a,&c,&b)中,%d,&a这些代表什么啊?求解!不胜...
d是整型占位符,就是在你输入数据的时候第一个是按照整数类型来读取的 &a是取变量a的地址,然后将读取到的数据存入到对应的地址

相似回答