求助大佬,不着为啥结果不输出

P5740 【深基7.例9】最厉害的学生

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


|