问题 A: A+B 输入输出练习I
题目
题目描述
你的任务是计算 a+b。这是为了 acm
初学者专门设计的题目。你肯定发现还有其他题目跟这道题的标题类似,这些问题也都是专门为初学者提供的。
输入
输入包含一系列的 a 和 b 对,通过空格隔开。一对 a 和 b 占一行。
输出
对于输入的每对 a 和 b,你需要依次输出 a、b 的和。
如对于输入中的第二对 a 和 b,在输出中它们的和应该也在第二行。
样例输入
样例输出
题解
思路
由于题目中并没有指定输入的数量,那么需要用到一种特殊的结构。利用scanf()
的返回值是否为EOF
来判断输入是否结束。
1 2 3 4 while (scanf ("%d %d" , &a, &b) != EOF) { ... }
原因是scanf()
只有在读取文件时到达文件末尾才会导致无法读取的现象,才会产生读入失败。这个时候scanf()
函数会返回
-1
(scanf()
函数的返回值是其成功读入时参数的个数 )。C
语言中使用EOF
代表 -1。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include <iostream> #include <stdio.h> #include <math.h> #include <string.h> using namespace std;int main () { int a, b; while (scanf ("%d %d" , &a, &b) != EOF) { printf ("%d\n" , a + b); } system ("pause" ); return 0 ; }
问题 B: A+B 输入输出练习II
题目
题目描述
你的任务是计算 a+b。
输入
第一行是一个整数 N,表示后面会有 N 行 a 和 b,通过空格隔开。
输出
对于输入的每对 a 和 b,你需要在相应的行输出 a、b 的和。
如第二对 a 和 b,对应的和也输出在第二行。
样例输入
样例输出
题解
思路
该题是while( n-- )
类型。还是比较简单的。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include <iostream> #include <stdio.h> #include <math.h> #include <string.h> using namespace std;int main () { int n, a, b; scanf ("%d" , &n); while (n--) { scanf ("%d %d" , &a, &b); printf ("%d\n" , a + b); } system ("pause" ); return 0 ; }
问题 C: A+B 输入输出练习III
题目
题目描述
你的任务是计算 a+b。
输入
输入中每行是一对 a 和 b。其中会有一对是 0 和 0
标志着输入结束,且这一对不要计算。
输出
对于输入的每对 a 和 b,你需要在相应的行输出 a、b 的和。
如第二对 a 和 b,他们的和也输出在第二行。
样例输入
样例输出
题解
思路
与 A
一样的,只是需要加入一个判断,就是a == 0 && b == 0
这个时候是程序输入结束的标志。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include <iostream> #include <stdio.h> #include <math.h> #include <string.h> using namespace std;int main () { int a, b; while (scanf ("%d %d" , &a, &b) != EOF) { if (a == 0 && b == 0 ) { break ; } printf ("%d\n" , a + b); } system ("pause" ); return 0 ; }
问题 D: A+B 输入输出练习IV
题目
题目描述
你的任务是计算若干整数的和。
输入
每行的第一个数 N,表示本行后面有 N 个数。
如果 N=0 时,表示输入结束,且这一行不要计算。
输出
对于每一行数据需要在相应的行输出和。
样例输入
样例输出
题解
思路
这道题目其实是把上面两道题目合起来了。需要注意的地方如下:
没有行数的约定,所以需要用EOF
作为判断结束标志。
读取了每一行的第一个数n
后,需要判断其是否为 0,为 0
则break
;否则继续执行。
while( n-- )
直到 n == 0
。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #include <iostream> #include <stdio.h> #include <math.h> #include <string.h> using namespace std;int main () { int n; while (scanf ("%d" , &n) != EOF) { if (n == 0 ) { break ; } int sum = 0 , x; while (n--) { scanf (" %d" , &x); sum += x; } printf ("%d\n" , sum); } system ("pause" ); return 0 ; }
问题 E: A+B 输入输出练习V
题目
题目描述
你的任务是计算若干整数的和。
输入
输入的第一行是一个正数 N,表示后面有 N 行。每一行的第一个数是
M,表示本行后面还有 M 个数。
输出
对于每一行数据需要在相应的行输出和。
样例输入
样例输出
题解
思路
这题比较简单,看代码里的注释就好了。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #include <iostream> #include <stdio.h> #include <math.h> #include <string.h> using namespace std;int main () { int n; scanf ("%d" , &n); while (n--) { int m; scanf ("%d" , &m); int sum = 0 , x; while (m--) { scanf (" %d" , &x); sum += x; } printf ("%d\n" , sum); } system ("pause" ); return 0 ; }
问题 F: A+B 输入输出练习VI
题目
题目描述
你的任务是计算若干整数的和。
输入
每行的第一个数 N,表示本行后面有 N 个数。
输出
对于每一行数据需要在相应的行输出和。
样例输入
样例输出
题解
思路
这题跟之前一题有点像,就不多说了。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #include <iostream> #include <stdio.h> #include <math.h> #include <string.h> using namespace std;int main () { int n; while (scanf ("%d" , &n) != EOF) { int sum = 0 , x; while (n--) { scanf (" %d" , &x); sum += x; } printf ("%d\n" , sum); } system ("pause" ); return 0 ; }
问题 G: A+B 输入输出练习VII
题目
题目描述
你的任务是计算两个整数的和。
输入
输入包含若干行,每行输入两个整数 a 和 b,由空格分隔。
输出
对于每组输入,输出 a 和 b 的和,每行输出后接一个空行。
样例输入
样例输出
题解
思路
之前的代码输出的\n
后再加一个\n
即可。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include <iostream> #include <stdio.h> #include <math.h> #include <string.h> using namespace std;int main () { int a, b; while (scanf ("%d %d" , &a, &b) != EOF) { printf ("%d\n\n" , a + b); } system ("pause" ); return 0 ; }
问题 H: A+B 输入输出练习VIII
题目
题目描述
你的任务是计算若干整数的和。
输入
输入的第一行为一个整数 N,接下来N行每行先输入一个整数
M,然后在同一行内输入 M 个整数。
输出
对于每组输入,输出 M 个数的和,每组输出之间输出一个空行。
样例输入
1 2 3 4 3 4 1 2 3 4 5 1 2 3 4 5 3 1 2 3
样例输出
题解
思路
E 题的输出再加一个\n
即可。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #include <iostream> #include <stdio.h> #include <math.h> #include <string.h> using namespace std;int main () { int n; scanf ("%d" , &n); while (n--) { int m; scanf ("%d" , &m); int sum = 0 , x; while (m--) { scanf (" %d" , &x); sum += x; } printf ("%d\n\n" , sum); } system ("pause" ); return 0 ; }