标题:大神帮忙!!!最高分学生信息输不出
只看楼主
litterpay
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2012-12-21
结帖率:60%
已结贴  问题点数:20 回复次数:19 
大神帮忙!!!最高分学生信息输不出
有若干个学生,每个学生的数据包括学号、姓名、五门课的成绩,从键盘输入若干个学生数据,要求打印出五门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、五门课的成绩、平均分数)。
 用一个input函数输入5个学生数据;
 用一个average函数求总平均分;
 用max函数找出最高分学生数据;
 总平均分和每科最高分的学生的数据都在主函数中输出。
 提示:定义结构体如下:
struct student {
    char  num[6];
    char name[10];
    float score[6];  /*  其中最后一个元素用来保存平均成
#include <stdio.h>

#define n 5

float average(struct student stu[n]);
int max(struct student stu[n]);  
struct student  
{    char  num[6];   
     char name[10];   
     float score[6];  /*  其中最后一个元素用来保存平均成绩  */
}; struct student stu[n];

void input(struct student stu[n])
{  
    int i,j;  
    for(i=0;i<n;i++)   
    {      
        printf("学号: ");      
        scanf("%s",stu[i].num);      
        printf("姓名: ");      
        scanf("%s",stu[i].name);      
        printf("五门学科的成绩:\n");      
        scanf("%f %f %f %f %f:",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2],&stu[i].score[3],&stu[i].score[4]);      
        printf("\n");     
    }  
}  

float average(struct student stu[n])
{   
    int j,i=0;   
    float sav=0,sum=0,ave;
    for(;i<n;i++)
    {   
        for(j=0;j<5;j++)   
        {     
            sum+=stu[i].score[j];   
        }     
        stu[i].score[6]=sum/5;  
        printf("学生%d的平均分为%5.2f",i+1,stu[i].score[6]);  
        printf("\n");     
        sav+=stu[i].score[6];     
        sum=0;
    }
    ave=sav/n;
    return ave;
}

int max(struct student stu[n])
{  
    int i=1,p;  
    float max;  
    max=stu[0].score[6];
    for(;i<n;i++)
    {   
        if(max<stu[i].score[6])   
        {     
            max=stu[i].score[6];     
            p=i;   
        }  
    }
    return p;  
}  

void main()  
{   
    int i,p;
    float ave;      
    input(stu);  
    ave=average(stu);
    printf("五门课的总平均分为%5.2f\n",ave);
    printf("\n");  
    p=max(stu);
    printf("最高分的学生信息:\n学号:%s\n姓名:%s\n",stu[p].num,stu[p].name);
    printf("五门学科的成绩:\n"); printf("%5.2f %5.2f %5.2f %5.2f %5.2f\n",stu[p].score[0],stu[p].score[1],stu[p].score[2],stu[p].score[3],stu[p].score[4]);
    printf("平均分为%5.2f\n",stu[p].score[6]);  
}
绩  */
 };





[ 本帖最后由 litterpay 于 2012-12-30 15:40 编辑 ]
搜索更多相关主题的帖子: average include 结构体 
2012-12-30 12:14
a4811
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:100
专家分:107
注 册:2012-12-20
得分:7 
        stu[i].score[6]=sum/5;
        printf("学生%d的平均分为%5.2f",i+1,stu[i].score[6]); <--------这里
        printf("\n");   
        sav+=stu[i].score[6];   
        sum=0;
兄弟,你打算用stu[i].score[6]来存放一个学生的平均成绩,但只能用到score[5]啊,没有score[6],数组下标是从0开始的。
2012-12-30 12:35
litterpay
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2012-12-21
得分:0 
回复 楼主 litterpay
大神快来帮忙啊!!!
2012-12-30 12:35
litterpay
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2012-12-21
得分:0 
回复 2楼 a4811
怎么改????
2012-12-30 12:37
litterpay
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2012-12-21
得分:0 
回复 2楼 a4811
似乎可以更完善点!!!帮忙修改!!
2012-12-30 12:39
a4811
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:100
专家分:107
注 册:2012-12-20
得分:0 
你把score[6]改成score[5]试试。
还有,你的程序不怎么规范,最好是定义一个变量来代替stu[i].score[6]);
2012-12-30 12:40
litterpay
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2012-12-21
得分:0 
回复 6楼 a4811
还是不行!!!
2012-12-30 12:44
ksddah
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:53
专家分:135
注 册:2012-12-11
得分:7 
没有错错误的,就那个输入函数漏了&
程序代码:
void input(struct student stu[n])
{  int i,j; 
    for(i=0;i<n;i++)   
    {     
        printf("学号: ");     
        scanf("%s",&stu[i].num);                                  //漏& 
        printf("姓名: ");     
        scanf("%s",&stu[i].name);                                  //漏&   
        printf("五门学科的成绩:\n");     
        scanf("%f %f %f %f %f:",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2],&stu[i].score[3],&stu[i].score[4]);     
        printf("\n");    
    }
} 
2012-12-30 13:22
litterpay
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2012-12-21
得分:0 
回复 8楼 ksddah
总平均分和最高分的学生的数据都在主函数中输出。

这个我没实现!!求帮助
2012-12-30 13:30
ksddah
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:53
专家分:135
注 册:2012-12-11
得分:0 
实现了吧,实在主函数输出的阿
2012-12-30 13:43



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-394545-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.121958 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved