为您找到"
while((scanf("%d",&a))!='\n')这句哪错了
"相关结果约100,000,000个
这得看scanf的定义:int scanf(const char *format, ...)返回值:如果成功,该函数返回成功匹配和赋值的个数。如果到达文件末尾或发生读错误,则返回 EOF 所以,如果你在终端上输入数据,而不是从文件,那么基本上不会发生读错误,也就无从读取到EOF了。如果你是在windows系统上执行此程序,偿试输入...
while(scanf("%d",&n)!=EOF)后面没有分号,即视为对下一个while语句的无限执行
所以会跳出循环。而如果是while(scanf("%d", &n))的话,即等价于while(-1),显然还会继续循环,所以超时。所以可以有以下用法:1. while(scanf("%d", &n) == 1)2. while(scanf("%d", &n) != EOF)3. while(~scanf("%d", &n)) 当输入为EOF时,-1求反为0哦,所以也可以。
while(scanf(%c,&a)!=EOF),这个是如果读取正确,则一直读取数据。数组直接用a,是指传递了a数组的首地址,根据a的偏移量读取数据。a[]是指单独赋值数组中的某个值。存储字符串用字符数组,可以直接赋值,也可以按照下标赋值,按照下标赋值需要在结尾手动添加“\0”。
如果 变量 a和b 不是int型的 会报错 如果上一行代码没有分号结尾,报错在这行的。(没有分号,报错在下一行。)这是经典名句。
最后一句输入语句是为了暂停屏幕,不让屏幕一闪而过。没有实际意义。你完全可以使用:1)加上#include<stdlib.h> 2)在程序最后一个}前system("pause");
while(a>0) 因为a=1的 所以程序就一直在while里了 字母的 %d形式是该字母的ASCALL码。自己翻看ASCALL码表就知道了 scanf执行错误
你好!我电脑上上述程序执行时是都可以加的。可能你是输入EOF的时候不正确?输完一组数据之后,回车,再Ctrl+Z,再回车,接着输下一组数据,以此类推。程序就会分别输出每组的和(按行)。我的回答你还满意吗~~
意思是输入m n的值,若是m <=0 或者n <0 且输入值不是结束字符或者输入没有错误时,会继续要求输入 实际的意思是输入m n的值,且 m 和n的值要大于0,否则重新输入
scanf("%d%d%d",&a,&b,&c)返回输入的数据和格式字符串中匹配次数。当dos或windows中输入ctrl+z(模拟文件结束符EOF)时,scanf返回EOF,所以当输入终止符ctrl+z时,退出while循环