题目如下:
两支足球队之间展开了一场足球赛。整场比赛双方一共打进了 n 个进球,进球多的一方将收获最终的胜利。
请你根据进球纪录,判断哪支球队最终获胜。保证不存在平局。
输入格式如下:
第一行包含整数 n。接下来 n 行,其中第 i 行记录了打进第 i 个进球的球队的名称。
球队名称由大写字母构成,长度范围 [1,10]。保证输入中包含的不同球队不超过两支。
题目要求为:输出获胜队伍的名称。
错误代码如下:
#include
#include
int main()
{
int n,t;
int i;
int sum=0;//第一支队伍的进球数
scanf("%d",&n);
char s[10][10];
for(i=0;iscanf("%s",s[i]);
}
for(i=0;iif(strcmp(s[i],s[0])!=0)
{
t=i;
}
}
for(i=0;iif(s[i]==s[0])
{
sum++;
}
}
if(sum>n/2)
{
printf("%s",s[0]);
}
else
{
printf("%s",s[t]);
}
return 0;
}
得出的错误如下:
求解答,感谢。
s[i]==s[0]是在干什么,用strcmp啊
你判断地址是否相等,地址必然不等
该回答引用ChatGPT
请参考下面的代码,如果有帮助,还请点击 采纳,感谢支持!
代码如下:
#include <stdio.h>
#include <string.h>
int n, a, b;
char teamA[15], teamB[15];
int main()
{
scanf("%d", &n);
memset(teamA, 0, sizeof teamA);
memset(teamB, 0, sizeof teamB);
for (int i = 0; i < n; i++)
{
char team[15];
scanf("%s", team);
if (strcmp(team, teamA) == 0)
a++;
else
{
strcpy(teamB, team);
b++;
}
}
if (a > b)
printf("%s\n", teamA);
else
printf("%s\n", teamB);
return 0;
}