蓝桥杯第一次训练赛题解
A+B for Input-Output Practice (I)
题目描述
Description
计算A+B
程序设计任务中常常会包含多组输入输出。
Input
第一行一个正整数n,代表输入数据的组数。
以下n行,每行两个正整数
Output
计算这n组数的和,每组答案占一行
Sample Input
2
1 5
10 20
Sample Output
6
30
代码
#include <bits/stdc++.h>
using namespace std;
int n, a, b;
int main() {
scanf("%d", &n);
while (n--) {
//for(int i=1;i<=n;++i)
scanf("%d%d", &a, &b);
printf("%d\n", a + b);
}
return 0;
}
复读机 for Input-Output Practice (V)
题目描述
Description
所谓复读机,那就是复读,就是复读,就是复读,就是复读…
Input
第一行包括一个正整数T,表示输入数据组数。(1 < T < 10)
每一组输入数据为长度不超过20的一句话。
Output
对于每组输入,原样输出输入的内容。
Sample Input
3
Hello World!
I love NCST!
I love ACM!
Sample Output
Hello World!
I love NCST!
I love ACM!
题目讲解
scanf语句在接收字符串的时候遇到空格和回车会自动结束并且空格和回车还遗留在缓冲区内。但是使用%[]可以用来进行多个字符的输入,并对结束符进行自定义。例如
scanf("%[^\n]",src);//直到输入回车键,读取才结束,当然不能超过a定义的大小,否则会出错。
当然这种方法并不常用。
gets()语句遇到空格不停止,遇到回车停止。
也可以使用getline(cin,s)这样的方式接收字符串。
代码
#include <bits/stdc++.h>
using namespace std;
int T;
char s[200];
string ss;
int main() {
scanf("%d", &T);
getchar();
while (T--) {
//for(int i=1;i<=n;++i)
// cin.getline(s, 20);
// cout << s <<