【题目描述】
受疫情的影响,2020 年蓝桥杯大赛青少年创意编程 C++ 组的省赛在网上进行。选择题有 5 道,都是单选题,每道 30 分,共计 150 分。每道选择题选对得 30 分,选错或者不选得 0 分。
注意以下仅为假设,不代表本场考试选择题的真实答案,仅是针对本编程题假设出的答案。
假设正确的答案为 "DCBAD",那么你能根据选手的提交情况,判定选手的选择题总分吗?选手提交一个由5个字符组成的字符串,代表选手的选项。字符串仅能包含如下 5 种字符:"D"、"C"、"B"、"A"、"E"。其中 "A"、"B"、"C"、"D" 代表选手选择了某个选项,而 "E" 代表选手未做该题。
【输入】
选手提交的一个由 5 个字符组成的字符串。
【输出】
一个整数,代表选手选择题的总分。
【输入样例】
DCEAA
【输出样例】
90 解题思路 首先,我们需要读入选手提交的答案,这里我们使用cin语句读入五个字符类型的变量c1、c2、c3、c4、c5。 接着,我们定义一个整型变量ans,并将其初始化为0,用于存储选手的总分。 然后,我们使用五个if语句判断每道题的答案是否正确,如果答案正确,则将对应的分数30 加到ans变量上。 最后,我们使用cout语句输出ans变量,即选手的总分。 参考代码
- #include <bits/stdc++.h>
- using namespace std;
- int main() {
- char c1,c2,c3,c4,c5;
- int ans=0;
- //正确答案"DCBAD"
- cin>>c1>>c2>>c3>>c4>>c5;
- if(c1=='D'){
- ans = ans + 30;
- }
- if(c2=='C'){
- ans = ans + 30;
- }
- if(c3=='B'){
- ans = ans + 30;
- }
- if(c4=='A'){
- ans = ans + 30;
- }
- if(c5=='D'){
- ans = ans + 30;
- }
- cout<<ans<<endl;
- return 0;
- }
知识点睛 using namespace std;是C++中常用的命名空间声明语句,可以省略std前缀,方便使用标准库中的函数和对象。 输入输出:cin和cout是C++中的输入输出流对象,用于从标准输入流(通常是键盘)读取数据,并向标准输出流(通常是显示器)输出数据。 条件语句:这里我们使用了 if 语句来基于某些条件执行代码。在每个 if 语句中,我们检查选手答案是与标准答案相同,如果是,我们更新 ans。 字符类型变量,使用char来存储单个字符。 变量类型及初始化,使用int定义整数类型变量ans,并将其初始化为0。