ACM里说多组数据怎么输入啊?

来源:百度知道 编辑:UC知道 时间:2024/05/26 13:07:58
比如要酸1加到N的总和。
多组数据怎么输入的?
不输出?

#include <stdio.h>
int main()
{
int i,n,s;
while(scanf("%d",&n)!=EOF)
{
s=0;
for(i=1;i<=n;i++)
s+=i;
printf("%d\n",s);
/*或者去掉前面的,只用这一句。
printf("%d\n",(n+1)*n/2);等差数列*/
}
return 0;
}
输出也在循环体内 ,就可以多次输出了
scanf 是有返回值的,返回读到的数据的个数,所以while(scanf("%d",&n)!=EOF)就等价于while(scanf("%d",&n)==1),!=EOF 就是还有读到数据,继续处理的意思

还有一点要注意,有些题目处理玩一组数据后某些变量值会发生变化,所以循环体内要记得初始化 ,比如程序那个s=0,要放在循环体内

int n,sum=0;
while(scanf("%d",&n)!=EOF)
{
sum+=n;
}
EOF 处理到文件的结束就可以了。
根据题目的要求在合适的位置输出就可以了,如果每组数据都要输出,则写在循环里面,如果所有数据加完了在输出,那么就在循环外边。
只要你知道是要处理到文件结束就根据题目的要求做就可以了。
如果sum是求所有的输入的和,就是放在外边的!请楼上的兄弟认真思考后再发言。

如何处理多组数据的输入?

在C和C++里,我们可以使用 scanf 的返回值,如果返回值为EOF,则说明已无下一组数据,也可以使用cin的返回值,如果cin返回0,则说明无更多数据。

在java中,可以使用Scanner的 hasNext() 函数判断是否还有数据,hasNext() 返回 true,说明还有后续