文章

【GESP】C++三级练习BCQM3091,选择题判定

GESP三级字符串string和一级知识点if-else分支语句练习,非常基础,对于我孩子来说练习重点在一级部分,字符串只是碰巧遇到了。

BCQM3091

题目要求

描述

受疫情的影响,2020 年蓝桥杯大赛青少年创意编程 C++ 组的省赛在网上进行。选择题有 5 道,都是单选题,每道 30 分,共计 150 分。每道选择题选对得 30 分,选错或者不选得 0 分。

注意以下仅为假设,不代表本场考试选择题的真实答案,仅是针对本编程题假设出的答案。

假设正确的答案为 “DCBAD”,那么你能根据选手的提交情况,判定选手的选择题总分吗?选手提交一个由5个字符组成的字符串,代表选手的选项。字符串仅能包含如下 5 种字符:”D”、”C”、”B”、”A”、”E”。其中 “A”、”B”、”C”、”D” 代表选手选择了某个选项,而 “E” 代表选手未做该题。

输入

选手提交的一个由 5 个字符组成的字符串。

输出

一个整数,代表选手选择题的总分。

输入样例

DCEAA

输出样例

90


题目分析

这道题目的解题思路如下:

  1. 读取选手提交的字符串。
  2. 遍历选手提交的字符串,与正确答案DCBAD逐字符比较。
  3. 如果字符相同,则得分加 30。
  4. 最后输出总分。

代码参考

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <cstdio>
using namespace std;
int main() {
    char n[5];
    scanf("%s", n);
    int i = 0;
    if ('D' == n[0]) {
        i += 30;
    }
    if ('C' == n[1]) {
        i += 30;
    }
    if ('B' == n[2]) {
        i += 30;
    }
    if ('A' == n[3]) {
        i += 30;
    }
    if ('D' == n[4]) {
        i += 30;
    }
    printf("%d", i);
    return 0;
}

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

本文由作者按照 CC BY 4.0 进行授权