二者区别

x2x2x2 2010-01-16 05:05:24
#include<stdio.h>
void main()
{
int a,b;
while((scanf("%d %d",&a,&b))!=0)
printf("%d\n",a+b);
}



#include<stdio.h>
void main()
{
int a,b;
while((scanf("%d %d",&a,&b))!=EOF)
printf("%d\n",a+b);
}


二者的区别是什么?上面的那个运算时间超时了
...全文
114 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
z569362161 2010-01-16
  • 打赏
  • 举报
回复
EOF就是END ON FILES
它的返回值是-1。

你的两个是不同的。

flyyyri 2010-01-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mstlq 的回复:]
while((scanf("%d %d",&a,&b))!=0) ----》while((scanf("%d %d",&a,&b))==2)
scanf的返回值代表的是它成功读入的变量数
[/Quote]


顶一下
FredGan 2010-01-16
  • 打赏
  • 举报
回复
我检测,运行的时候,如果输入的是数字,效果一样。
但是如果输入字母,第一个没有结果,第二个进入死循环,输出一大串东西。
traceless 2010-01-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 macrojj 的回复:]
用 scanf的时候 我都是 设置标记的
[/Quote]
很好的习惯!
macrojj 2010-01-16
  • 打赏
  • 举报
回复
用 scanf的时候 我都是 设置标记的
traceless 2010-01-16
  • 打赏
  • 举报
回复
scanf返回值表示成功读入的变量类型的个数
while((scanf("%d %d",&a,&b))!=0)
成功会继续,不成功就退出

while((scanf("%d %d",&a,&b))!=EOF)
EOF是-1
不成功就死循环
mstlq 2010-01-16
  • 打赏
  • 举报
回复
while((scanf("%d %d",&a,&b))!=0) ----》while((scanf("%d %d",&a,&b))==2)
scanf的返回值代表的是它成功读入的变量数
xylicon 2010-01-16
  • 打赏
  • 举报
回复
Both scanf and wscanf return the number of fields successfully converted and assigned; the return value does not include fields that were read but not assigned. A return value of 0 indicates that no fields were assigned. The return value is EOF for an error or if the end-of-file character or the end-of-string character is encountered in the first attempt to read a character.


主要是scanf的返回值的不同。上面说明了返回0和返回EOF的区别。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧