下面是微博上流传的一张照片:“各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题答案:A-1;B-2;C-3;D-4;请同学们自己作答,每两日一换。谢谢合作!!~”—— 老师们为了促进学生学习也是拼了…… 本题就要求你写程序把一系列题目的答案按照卷子上给出的对应关系翻译成 wifi 的密码。这里简单假设每道选择题都有 4 个选项,有且只有 1 个正确答案。
输入第一行给出一个正整数 N(≤ 100),随后 N 行,每行按照 编号-答案
的格式给出一道题的 4 个选项,T
表示正确选项,F
表示错误选项。选项间用空格分隔。
在一行中输出 wifi 密码。
8
A-T B-F C-F D-F
C-T B-F A-F D-F
A-F D-F C-F B-T
B-T A-F C-F D-F
B-F D-T A-F C-F
A-T C-F B-F D-F
D-T B-F C-F A-F
C-T A-F B-F D-F
13224143
老师说这道题可以不用数组,我也觉得不用数组可以完成的,可以参考一下我的代码,你也来试试
#include<stdio.h>
int main() {
int n;//行数
char zimu, duicuo; //字母和对错
int num;
scanf("%d", &n);
while (n--) {
for (int i = 0; i < 4; i++) {
scanf(" %c-%c", &zimu, &duicuo); //一定要记住有空格(其实getchar更严谨,但我想省事嘿嘿)
if (duicuo == 'T') {
num = zimu - 'A' + 1; //由字母减去其ASCII码相减等于0,再加一转化成对应数字
}
}
printf("%d", num);
}
return 0;
}
不好意思评论区的各位,之所以你们在12.18得出错误答案是,,我scanf那块忘加空格了。。。
请再相信一次!!!
现在已经加上,答案应该没问题了:)
当然,下面还有一个老师给的标准答案,有点繁琐我觉得,但如果上面答案还是未通过就来看这个!
#include <stdio.h>
int main()
{
int N, i, j;
char item, result;
scanf("%d", &N);
getchar();//吸收空格,防止下次被scanf读入
for (i = 1; i <= N; i++) {
for (j = 1; j <= 4; j++) {
scanf("%c-%c", &item, &result);
getchar();
if (result == 'T') {
switch (item) {
case'A':printf("1"); break;
case'B':printf("2"); break;
case'C':printf("3"); break;
case'D':printf("4"); break;
}
}
}
}
return 0;
}
因篇幅问题不能全部显示,请点此查看更多更全内容