在VS里运行好好的,复制粘贴到牛客上就上过不了
现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
输入格式:
输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。
输出格式:
输出第1、2行分别给出甲、乙的胜、平、负次数,数字间以1个空格分隔。第3行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1个空格。如果解不唯一,则输出按字母序最小的解。
代码
#include<stdio.h>
int main()
{
int n, i, js = 0, jp = 0, jy[3] = { 0 }, yy[3] = { 0 }//js甲胜,jp为甲平,jy(甲胜的招)中0是布,1是锤,2是剪
scanf("%d", &n);
char *j = (char*)malloc(sizeof(char)*n);
char *y = (char*)malloc(sizeof(char)*n);
for (i = 0; i < n; i++)
{
scanf("%s %s", &j[i], &y[i]);
}
for (i = 0; i < n; i++)
{
if ((j[i] == 'C'&&y[i] == 'J') || (j[i] == 'J'&&y[i] == 'B') || (j[i] == 'B'&&y[i] == 'C'))
{
if (j[i] == 'C'&&y[i] == 'J')
jy[1]++;
else if (j[i] == 'J'&&y[i] == 'B')
jy[2]++;
else if (j[i] == 'B'&&y[i] == 'C')
jy[0]++;
js++;
}
else if ((j[i] == 'C'&&y[i] == 'B') || (j[i] == 'J'&&y[i] == 'C') || (j[i] == 'B'&&y[i] == 'J'))
{
if (j[i] == 'C'&&y[i] == 'B')
yy[0]++;
else if (j[i] == 'J'&&y[i] == 'C')
yy[1]++;
else if (j[i] == 'B'&&y[i] == 'J')
yy[2]++;
}
else
jp++;
}
printf("%d %d %d\n", js, jp, n - js - jp);
printf("%d %d %d\n", n - js - jp, jp, js);
if (jy[0] >= jy[1] || jy[0] >= jy[2])
printf("B");
else if (jy[0] < jy[1] || jy[1] >= jy[2])
printf("C");
else
printf("J");
if (yy[0] >= yy[1] || yy[0] >= jy[2])
printf(" B");
else if (yy[0] < yy[1] || yy[1] >= yy[2])
printf(" C");
else
printf(" J");
return 0;
}
C入门新手,多多指教,不胜感激