前言:
21考研,正在啃《算法笔记》,不论能否进复试记录一下准备路上写下的垃圾代码。
解答:
#include<cstdio>
int main()
{
int pose1[3] = {
0 }, pose2[3] = {
0 }; //双方获胜3种手势次数,0布,1锤子,2剪刀
int res1[3] = {
0 }, res2[3] = {
0 }; //双方胜平负次数统计,0胜,1平,2负
int n, num1=2,num2=2;
char cur1, cur2,bp1,bp2; //当前局的手势和获胜最多手势
scanf("%d", &n);
while (n--) {
getchar();
cur1 = getchar();
getchar();
cur2 = getchar();
if (cur1 == cur2) {
res1[1]++;
res2[1]++;
}
else if (cur1 == 'C' && cur2 == 'J') {
res1[0]++;
res2[2]++;
pose1[1]++;
}
else if (cur1 == 'J' && cur2 == 'B') {
res1[0]++;
res2[2]++;
pose1[2]++;
}
else if (cur1 == 'B' && cur2 == 'C') {
res1[0]++;
res2[2]++;
pose1[0]++;
}
else if (cur2 == 'C' && cur1 == 'J') {
res2[0]++;
res1[2]++;
pose2[1]++;
}
else if (cur2 == 'J' && cur1 == 'B') {
res2[0]++;
res1[2]++;
pose2[2]++;
}
else if (cur2 == 'B' && cur1 == 'C') {
res2[0]++;
res1[2]++;
pose2[0]++;
}
}
printf("%d %d %d\n", res1[0], res1[1], res1[2]);
printf("%d %d %d\n", res2[0], res2[1], res2[2]);
for (int i = 2; i >= 1; i--)
{
if (pose1[i - 1] >= pose1[i])
num1 = i - 1;
if (pose2[i - 1] >= pose2[i])
num2 = i - 1;
}
if (num1 == 0)
bp1 = 'B';
else if (num1 == 1)
bp1 = 'C';
else
bp1 = 'J';
if (num2 == 0)
bp2 = 'B';
else if (num2 == 1)
bp2 = 'C';
else
bp2 = 'J';
printf("%c %c", bp1, bp2);
return 0;
}
只能对前三个测试点,后面三个也找不着错哪,呜