【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
题目分析
这道题目的解题思路如下:
- 读取选手提交的字符串。
- 遍历选手提交的字符串,与正确答案DCBAD逐字符比较。
- 如果字符相同,则得分加 30。
- 最后输出总分。
代码参考
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 进行授权