算法笔记@Ada_Lake
算法笔记代码保留地~~~
2.10小节——C/C++快速入门->黑盒测试
问题 A: A+B 输入输出练习I
- 题目描述 ,你的任务是计算a+b。这是为了acm初学者专门设计的题目。你肯定发现还有其他题目跟这道题的标题类似,这些问题也都是专门为初学者提供的。
- 输入,输入包含一系列的a和b对,通过空格隔开。一对a和b占一行。
- 输出,对于输入的每对a和b,你需要依次输出a、b的和。如对于输入中的第二对a和b,在输出中它们的和应该也在第二行。
- 样例输入,
1 5
10 20 - 样例输出,
6
30
我的理解
1.只说了包含一系列的a和b对。通过空格隔开。则不知道到底要输入多少个。
用 while…EOF
2.不用数组的话如何输入大量再输出?
她说的是依次输出。不是最后统一输出。
主要考察的是scanf("%d", &a) != EOF
3.ctrl+Z+Enter手动结束while
4.scanf("%s", str)等同于gets(str)
即 while(scanf("%s", str) != EOF)等同于 while(gets(str) != NULL)
以下是代码
// Ada
#include<stdio.h>
int main() {
int a, b;
while(scanf("%d %d", &a, &b) != EOF) {
printf("%d\n", a + b);
}
return 0;
}
问题 B: A+B 输入输出练习II
- 题目描述 ,你的任务是计算a+b。
- 输入,第一行是一个整数N,表示后面会有N行a和b,通过空格隔开。
- 输出,对于输入的每对a和b,你需要在相应的行输出a、b的和。
如第二对a和b,对应的和也输出在第二行。 - 样例输入,
2
1 5
10 20 - 样例输出,
6
30
我的理解
题1是不知道循环多少次的情况下。题2是已知多少次
**以下是代码**
// Ada
#include<stdio.h>
int main(){
int a, b, N;
scanf("%d", &N);
while( N-- ) {
scanf("%d %d", &a, &b);
printf("%d\n", a + b);
}
return 0;
}
问题 C: A+B 输入输出练习III
- 题目描述 ,你的任务是计算a+b。
- 输入,输入中每行是一对a和b。其中会有一对是0和0标志着输入结束,且这一对不要计算。
- 输出,对于输入的每对a和b,你需要在相应的行输出a、b的和。
如第二对a和b,他们的和也输出在第二行。 - 样例输入,
1 5
10 20
0 0 - 样例输出,
6
30