@[TOC]***
C语言中的while(scanf("%d%d",&a,&b)!=EOF)和while((c=getchar())!=EOF))
1.while(scanf("%d%d",&a,&b)!=EOF)
该语句第一次看见时在VJ上看到的,用在一特殊的输入情况如下图
因为题中输出要求 输入包含多组测试数据,正常使用scanf(“%d%d”,&a,&b)只能输入一组,所以就要加上while循环语句。循环条件为读入不为EOF(文档结束符),可以手动输入ctrl+z跳出循环。
该题的源代码为
#include<stdio.h>
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
int t=2,i,max=0,c,d,j;
if(a<b)
max=b;
else
max=a;
for(int i=max;i<=a*b;i++)
{
c=i%a;
d=i%b;
// printf("%d %d",c,d);
if(i%a==0&&i%b==0)
{
t=i;
break;
}
}
printf("%d\n",t);
}
return 0;
}
运行结果:
while(scanf("%d%d",&a,&b)!=EOF)
{…}
与
int k=0; int n; scanf ("%d",&n);while(i==n) {scanf("%d%d",&a,&b); ... k++;}
//n次循环输入
二者效果相同,前者可以无限输入,后者可以约定输入数据的组数。