1076 Wifi密码 (15 point(s))
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
char opt[4][2], c;
cin >> n;
while(n--){
getchar();
scanf("%c-%c %c-%c %c-%c %c-%c",
&opt[0][0], &opt[0][1], &opt[1][0], &opt[1][1],
&opt[2][0], &opt[2][1], &opt[3][0], &opt[3][1]);
for(int i = 0; i < 4; i++){
if(opt[i][1] == 'T'){
cout << opt[i][0] - 'A' + 1;
break;
}
}
}
}
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
char TF, ans, c;
cin >> n;
for(int i = 0; i < n * 4; i++){
cin >> ans >> c >> TF;
if(TF == 'T') cout << ans - 'A' + 1;
}
}
cin 和 scanf 相隔需要用 getchar() 来读取换行符,并且 scanf() 之间也是要读取换行。
scanf("\n%c-%c %c-%c %c-%c %c-%c",
不过也可以这样写,在读取的开头写一个 \n 就可以每次读取都把换行吃掉了。
当时用了 scanf 是因为不知道如果用 char 和 cin 会不会把空格读取进去。看了别人的代码似乎是不会的,所以直接用 cin 要省事不少。
而用 cin 读取每一个选项判断的话,就得把循环条件乘以题目数量的四倍。因为现在是判断每一个选项了,而不是一个题目。