Z1660402068 @ 2024-01-21 14:48:48
#include <stdio.h>
int main ()
{
int n,a[1001][4],best=0;
char s[1001];
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int sum;
scanf("%s",&s[i]);
scanf("%d%d%d",&a[i][1],&a[i][2],&a[i][3]);
sum=a[i][1]+a[i][2]+a[i][3];
if(sum>best)
best=sum;
}
for(int i=1;i<=n;i++)
{
int sum;
sum=a[i][1]+a[i][2]+a[i][3];
if(sum==best)
printf("%s %d%d%d",s[i],a[i][1],a[i][2],a[i][3]);
}
return 0;
}
```c
by Lucky_Star @ 2024-01-21 15:24:02
名字要用二维的才行s[1001][8],输入字符数组只要变量名就行,不用加地址符号,数组的变量名就是地址了。你的输出成绩之间要加空格,而且只输出一位就好了。
by Z1660402068 @ 2024-01-21 16:40:49
@Lucky_Star 谢谢大佬
by Z1660402068 @ 2024-01-21 16:46:35
@Lucky_Star 改完之后第三个测试点过不去,大佬康康
#include <stdio.h>
int main ()
{
int n,a[1001][4],best=0;
char s[1001][8];
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int sum;
scanf("%s",s[i]);
scanf("%d%d%d",&a[i][1],&a[i][2],&a[i][3]);
sum=a[i][1]+a[i][2]+a[i][3];
if(sum>best)
best=sum;
}
for(int i=1;i<=n;i++)
{
int sum;
sum=a[i][1]+a[i][2]+a[i][3];
if(sum==best)
{
printf("%s %d %d %d",s[i],a[i][1],a[i][2],a[i][3]);
break;
}
}
return 0;
}
by Lucky_Star @ 2024-01-21 17:49:41
好像是姓名的数组开小了,我的问题,用s[1001][10]就好了。
by Z1660402068 @ 2024-01-21 19:09:26
@Lucky_Star 谢谢qaq