#P1066. 多组样例输入
多组样例输入
说明
这道题将向你们何为展示输出到文件末尾。
scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。
scanf("%d %d",&a,&b);
函数返回值为int型。如果a和b都被成功读入,那么scanf的返回值就是2;
如果只有a被成功读入,返回值为1;
如果a和b都未被成功读入,返回值为0;
如果遇到错误或遇到end of file,返回值为EOF。end of file为Ctrl+z 或者Ctrl+d。
其中EOF的值为-1
也就是说scanf返回值的取值范围是大于等于-1的整数只有返回值为EOF时 其取反的的值 即while循环的判断条件才为0 才能结束循环(-1的补码表示全是1,按位取反后全是0,即为假)其它输入情况下(无论是否输入成功) while循环的判断条件为非0 即为真
因此,我们可以通过
while(~scanf("%d",&n)){
你的代码
}
或
while(scanf("%d",&n)!=EOF){
你的代码
}
这样的形式来完成在预先不知道输入个数的情况下的多组输入,这个while循环会一直读入数据,直到你不输出,换句话说,你输入他就读,你不输入他就等着。那么,接下来就试试吧:
lxy喜欢喝奶茶,所以他总会自己买一杯,同时,也有很多人要请他喝奶茶,所以这些人每个人也都会买一杯奶茶送给他。
lxy只管喝不管算,所以请你帮他算一算他能喝到多少杯奶茶。
输入格式
输入由多行组成,读到文件末尾
每行一个数n(0<=n<=100000)表示有n个人要请lxy喝奶茶。
输出格式
对于每个输入,请输出lxy这次能喝到多少杯奶茶(每个输出占一行)
样例
1
2
100
2
3
101