问题补充说明:计算a+b Input 输入包含多组测试用例。每组用例占一行,包含2个整数a和b。最后一组用例为0 0,表示输入结束,该用例不需要处理。 Output 对于每组输入用例,输入a+b的和,占一行。 Sample Input 1 5 10 20 0 0 Sample Output 6 30
看起来像是ACM的OJ系统呵。和我们平常编程的运行环境不同:它上面的输入和输出是分开的,不像360问答咱们从键盘输入后在屏幕上显示,程序输出的内容也在屏幕上显示,交错一起的那个样子。
这道题,你可以用一个循环,设定结束条件为连续读到两个0,循环体里对于每次读到亮差妒员东建算的一行两个数,执行求和输出并换行。
#include<stdio.士确蛋术迅极h>
intmain()
{
inta,b;
while(1){
scanf("%d%d",&a,&b);
if(a==0&&b==0)break;
printf("%d\n",a+b);
}
return0;
}
在所有的输入完成前,OJ不会去检查你程序的输出的^_^,它只要一个最后的结果。元族行地则益所以你不必非要等最后一个数据输入后再一股脑地输出来,那样可能需要用一个个裂掉普拿足够大的数组或者是动态分配的存储来保存所有结果,会严重降低程序效率,在ACM上是很不利的。
攻刘叶地沿孙答境如果你对OJ的方式感兴趣,可以利用重定向来模仿它。在你的源文件旁边建立两个文件,一个用来存放代替键盘输入的内容,另一个用来存放代替屏幕输棉管军析号压而状行出的内容,假设分别叫***.染脚句限阿txt和***.txt,然后这样写:
#inc西活现良蛋空乎端lude<stdio.h>
intmain()
{
inta,b;
freopen("***.txt","r",stdi城状压九n);
freopen("*身的必轴轻**.txt","w",stdout);
freopen("***.txt","w",stderr);
while(1){
scanf("%d%d",&a,&b);
if(a==0&&b==0)break;
printf("%d\n",a+b);
}
fclose(stdin);
fclose(stdo背送致省书宽试照批核挥ut);
fclo判庆se(stderr);
re啊构太花究阳工流turn0;
}
然后在运行.exe前把输入数据一口气全部保存到***.txt中去,再去启动你的.exe程序,运行结束后你再手动打开***.txt对照一下,可以意施体战重露胞增一青试试。不过记得在提交前把fre本它为帝open()和fclose()的那几条语句去掉。以前在网上看过别人利用OJ环境的宏定义来条杀假氧念件编译,等会儿再找找看。
标签:这道题,说备,商空