小T,小A和小D由于没有好好复习,拿到试卷后发现所有问题自己都不会做,于是他们决定猜测正确答案。
对于答案序列他们都有自己的想法:
小T 使用了这个序列:C,C,A,A,B,B,C,C,A,A,B,B……
小A说最好的顺序是:A,B,C,A,B,C,A,B,C,A,B,C……
小D决定下面这个序列更好:B,A,B,C,B,A,B,C,B,A,B,C……
请你写一个程序,根据给出的正确答案,确定三个人中谁对的最多。
【输入数据】
第一行一个整数 nn,表示考试的数量。 第二行一个长度为 nn 的字符串(只包含A、B、C三种字符),表示考试的正确答案。
【输出数据】
第一行输出一个整数 mm,表示三个人中做对最多的数量。
从第二行开始,输出答对数最多的人的名字(每行一个,按照字典序输出)
【输入样例】
9
AAAABBBBB【输出样例】
4
A
D
T【数据范围】
对于 100%100% 的数据,有 1≤n≤1001≤n≤100。
c++,需要代码!!!
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- codeaftercode 2021-08-10 21:34关注
#include <iostream> using namespace std; int main() { int nn; char answer;//正确答案 char table_t[6] = {'A','A','B','B','C','C'};//小T的序列 char table_a[3] = {'A','B','C'}; //小A的序列 char table_d[4] = {'B','A','B','C'}; //小D的序列 int count_t = 0,count_a = 0,count_d = 0; cin>>nn;//输入题数 cin.get();//把输入流里的换行符读取进来.如果不加上这一句,在下面的代码中会将此换行符当成第一题答案 for (int i=0;i<nn;i++) { // 获取一个正确答案 answer = (char)cin.get(); // 小T,小A,小D的答案 char t = table_t[i%6]; char a = table_a[i%3]; char d = table_d[i%4]; // 答案是否正确,正确的计数器加1 if (t == answer)count_t++; if (a == answer)count_a++; if (d == answer)count_d++; } // 找出最大值,中间值,最小值 if (count_a>=count_d && count_a>=count_t) { cout<<count_a<<endl<<'A'<<endl; if (count_d>=count_t) { cout<<'D'<<endl<<'T'; } else { cout<<'T'<<endl<<'D'; } } else if (count_d>=count_a && count_d>=count_t) { cout<<count_d<<endl<<'D'<<endl; if (count_a>=count_t) { cout<<'A'<<endl<<'T'; } else { cout<<'T'<<endl<<'A'; } } else { cout<<count_t<<endl<<'T'<<endl; if (count_a>=count_d) { cout<<'A'<<endl<<'D'; } else { cout<<'D'<<endl<<'A'; } } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
- ¥20 关于URL获取的参数,无法执行二选一查询
- ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
- ¥15 marlin编译错误,如何解决?
- ¥15 有偿四位数,节约算法和扫描算法
- ¥15 VUE项目怎么运行,系统打不开
- ¥50 pointpillars等目标检测算法怎么融合注意力机制
- ¥20 Vs code Mac系统 PHP Debug调试环境配置
- ¥60 大一项目课,微信小程序
- ¥15 求视频摘要youtube和ovp数据集