Problem 1002 - another a+b
Problem 1002 - another a+b
Time Limit: 1000MS Memory Limit: 65536KB Difficulty:
Total Submit: 1241 Accepted: 856 Special Judge: No
Description
Just for add problem test, but notice it, this time you got multiple inputs(may contain more than 3 data cases,notice it!)
Input
1 2
2 3
3 4
Output
3
5
7
Sample Input
1 2
Sample Output
3
Hint
如何处理多组数据的输入?
在C和C++里,我们可以使用 scanf 的返回值,如果返回值为EOF,则说明已无下一组数据,也可以使用cin的返回值,如果cin返回0,则说明无更多数据。
在java中,可以使用Scanner的 hasNext() 函数判断是否还有数据,hasNext() 返回 true,说明还有后续数据,若返回false,说明无更多数据。
Here is a sample solution for problem 1002 using C++:
#include
using namespace std;
int main()
{
int a,b;
while(cin >> a >> b)
cout << a+b << endl;
}
Here is a sample solution for problem 1002 using C:
#include
int main()
{
int a,b;
while(scanf("%d %d",&a, &b) != EOF)
printf("%d\n",a+b);
return 0;
}
Here is a sample solution for problem 1002 using PASCAL:
program p1002(Input,Output);
var
a,b:Integer;
begin
while not eof(Input) do
begin
Readln(a,b);
Writeln(a+b);
end;
end.
Here is a sample solution for problem 1002 using Java:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int a = in.nextInt();
int b = in.nextInt();
System.out.println(a + b);
}
}
}
Source分析
另一个练习问题。仍然是计算两个数的和,不过这次是有多组数据输入,要求也要有多组数据输出。
Input中有三组数据,Output中是对应在三组输出结果。
很多初学者有这样的疑问,是该计算出所有的结果一起输出,还是该计算出一组结果输出一组呢?
答案是都可以,但建议使用后者的方式。因为前者需要缓存已计算好的结果,浪费有限的内存。
原因,参看数据“流”的概念,并了解C语言的三个标准流(stdin, stdout, stderr)。
为了文档的完整性,虽然题目的Hint中已经有了正确代码,这里再贴一遍吧。
程序代码:#include
int main()
{
int a, b;
for(; scanf("%d%d", &a, &b) != EOF; printf("%d\n", a + b));
return 0;
}