Hashmat is a brave warrior who with his group of young soldiers moves from one place to another to fight against his opponents. Before fighting he just calculates one thing, the difference between his soldier number and the opponent's soldier number. From this difference he decides whether to fight or not. Hashmat's soldier number is never greater than his opponent.
Input
The input contains two integer numbers in every line. These two numbers in each line denotes the number of soldiers in Hashmat's army and his opponent's army or vice versa. The input numbers are not greater than 2^32. Input is terminated by End of File.
Output
For each line of input, print the difference of number of soldiers between Hashmat's army and his opponent's army. Each output should be in seperate line.
Sample Input:
10 1210 14
100 200
Sample Output:
2
4
100
第一次做的答案如下:
int x,y;
int temp[100]={0};
int i=0;
while (scanf("%d %d",&x,&y)!=EOF)
{
temp[i++]=y-x;
}
for (int j=0;j<i;j++)
{
printf("%d\n",temp[j]);
}
裁定结果为:Runtime error,运行时间为:0.000
两个地方有问题(目前也不会解决,存疑):
1.用temp存结果,本身就存疑,但是以为是连续输入,没有其他办法处理。
2.scanf进行连续输入,需要ctrl+z结束输入,如果是连续输入,OJ是否可以?
回到题目,发现运行时间为0,说明是输入有问题,查了一下,原因是:并不是连续输入,最终答案:
#include <iostream>
using namespace std;
int main()
{
long long a,b;
while(cin>>a>>b)
{
cout<<(a<b ? b-a :a-b )<<endl;
}
return 0;
}
知识点:
1. printf 和 scanf 中%d 是输出、输入int 型,此题中用这两个C函数进行输入就一直错
2.
类型名称 字节数 取值范围
signed char 1 -128~+127
short int 2 -32768~+32767
int 4 -2147438648~+2147438647
long int 4 -2147438648~+2141438647
long long long int 8 -9223372036854775808~+9223372036854775807