陷阱就是要用getchar()吃掉多余的回车键
#include <iostream>
int findMax(int *p,int n);
int main(void)
{
int count = 0,index = 0;
char player1,player2;
int win = 0,failure = 0;
int wa[3] = {0,0,0},fa[3] = {0,0,0};
scanf("%d\n",&count);
while (index++ < count)
{
scanf("%c %c",&player1,&player2);
getchar();
if (((player1 - player2) == ('B' - 'C')) || ((player1 - player2) == ('C' - 'J')) || ((player1 - player2) == ('J' - 'B')))
{
win++;
if (player1 != 'J') wa[player1 - 'B']++;
else wa[2]++;
}
else if (player1 == player2) continue;
else
{
failure++;
if (player1 != 'J') fa[player1 - 'B']++;
else fa[2]++;
}
}
printf("%d %d %d\n",win,count - win - failure,failure);
printf("%d %d %d\n",failure,count - failure - win,win);
if (findMax(wa,3) == 0) printf("B");
else if (findMax(wa,3) == 1) printf("C");
else printf("J");
if (findMax(fa,3) == 0 && fa[0]) printf(" J");
else if (findMax(fa,3) == 1) printf(" B");
else if (findMax(fa,3) == 2) printf(" C");
else printf(" B");
return 0;
}
int findMax(int *p,int n)
{
int t = 0,j = 0;
int max = p[0];
while (t < n)
{
if (max < p[t]) {max = p[t],j = t;}
t++;
}
return j;
}
或许scanf("%c %c\n");也行,可以试一下