PAT Basic 1076. Wifi密码

PAT Basic 1076. Wifi密码

1. 题目描述:

下面是微博上流传的一张照片:“各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题答案:A-1;B-2;C-3;D-4;请同学们自己作答,每两日一换。谢谢合作!!~”—— 老师们为了促进学生学习也是拼了…… 本题就要求你写程序把一系列题目的答案按照卷子上给出的对应关系翻译成 wifi 的密码。这里简单假设每道选择题都有 4 个选项,有且只有 1 个正确答案。

wifi.jpg

2. 输入格式:

输入第一行给出一个正整数 N(≤ 100),随后 N 行,每行按照 编号-答案 的格式给出一道题的 4 个选项,T 表示正确选项,F 表示错误选项。选项间用空格分隔。

3. 输出格式:

在一行中输出 wifi 密码。

4. 输入样例:

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

5. 输出样例:

13224143

6. 性能要求:

Code Size Limit
16 KB
Time Limit
400 ms
Memory Limit
64 MB

思路:

除草题,考察基础IO,关键在于选项的正确读入,这里要使用getchar()消耗掉多余的空格符或换行符。

My Code:

#include <stdio.h>
#include <stdlib.h> // malloc header

int main(void)
{
    int quesCount = 0;
    char tempCh1, tempCh2;
    int i=0, j=0; // iterator
    char *res = NULL;
    int chCount = 0;
    
    scanf("%d", &quesCount);
    res = (char *)malloc(sizeof(char) * (quesCount+1));
    getchar(); // consume '\n' after int
    
    for(i=0; i<quesCount; ++i)
    {
        for(j=0; j<4; ++j) // four option
        {
            scanf("%c-%c", &tempCh1, &tempCh2);
            getchar(); // consume ' ' or '\n' in every line
            //printf("%c-%c\n", tempCh1, tempCh2);
            if(tempCh2 == 'T')
            {
                res[chCount++] = tempCh1-'A'+'1';
            }
        }
    }
    res[chCount] = '\0';
    
    printf("%s\n", res);
    
    free(res);
    return 0;
}
posted @ 2023-04-08 22:54  十豆加日月  阅读(21)  评论(0编辑  收藏  举报