自己找不出问题,求解

lb1992209760 2017-11-07 10:47:26



#include<stdio.h>
struct Stu{
char a[10];
char name[10];
int grade1;
int grade2;
int grade3;
int sum;
};
int main()
{
struct Stu stu[100];
int i,N,max,maxi;
scanf("%d\n",&N);
for(i=0;i<N;i++){
scanf("%s %s %d %d %d\n",&stu[i].a,&stu[i].name,&stu[i].grade1,&stu[i].grade2,&stu[i].grade3);
stu[i].sum=stu[i].grade1+stu[i].grade2+stu[i].grade3;
}
max=stu[0].sum;
for(i=1;i<N;i++){
if(max<stu[i].sum){
maxi=i;
max=stu[i].sum;
}
}
printf("%s %s %d",stu[maxi].name,stu[maxi].a,stu[maxi].sum);
return 0;
}
...全文
98 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
自信男孩 2017-11-08
#include<stdio.h>

struct Stu {
    char a[10];
    char name[10];
    int grade1;
    int grade2;
    int grade3;
    int sum;
};

int get_max_idx(struct Stu *arr, int len);

int main()
{
    static struct Stu stu[100];
    int i,N,max,maxi;
    scanf("%d",&N);
    for(i=0;i<N;i++){
        scanf("%s %s %d %d %d", stu[i].a, stu[i].name,&stu[i].grade1,&stu[i].grade2,&stu[i].grade3);
        stu[i].sum=stu[i].grade1+stu[i].grade2+stu[i].grade3;
    }
#if 1
    maxi = get_max_idx(stu, N);
#else
    max=stu[0].sum;
    for(i=1;i<N;i++){
        if(max<stu[i].sum){
            maxi=i;
            max=stu[i].sum;
        }
    }
#endif
    printf("%s %s %d",stu[maxi].name,stu[maxi].a,stu[maxi].sum);
    return 0;
}

int get_max_idx(struct Stu *arr, int len)
{
    int i;
    int max_i = 0;

    for (i = 1; i < len; i++)
        if (arr[i].sum > arr[max_i].sum)
            max_i = i;

    return max_i;

}
参考一下吧;获取总成绩最大的算法你的是没问题的,我自己写了一个函数,比你的少用一个max变量; 去掉scanf中的'\n',另外,a,name前面的&也一并去掉;因为数组名本身就是地址;
scanf("%s %s %d %d %d", stu[i].a, stu[i].name,&stu[i].grade1,&stu[i].grade2,&stu[i].grade3);
  • 打赏
  • 举报
回复
FoolCarpe 2017-11-08
scanf去掉‘\n’
  • 打赏
  • 举报
回复
Intel0011 2017-11-08
scanf("%d\n",&N); --> scanf("%d",&N); scanf("%s %s %d %d %d\n",&stu[i].a,&stu[i].name,&stu[i].grade1,&stu[i].grade2,&stu[i].grade3); --> scanf("%s %s %d %d %d",stu[i].a,stu[i].name,&stu[i].grade1,&stu[i].grade2,&stu[i].grade3); //数组不需加&
  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.5w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2017-11-07 10:47
社区公告
暂无公告