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 读取每一个选项判断的话,就得把循环条件乘以题目数量的四倍。因为现在是判断每一个选项了,而不是一个题目。

参考代码

posted on 2021-09-14 09:05  Atl212  阅读(41)  评论(0)    收藏  举报

导航