标题:大神帮忙!!!最高分学生信息输不出
取消只看楼主
litterpay
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2012-12-21
结帖率:60%
已结贴  问题点数:20 回复次数:12 
大神帮忙!!!最高分学生信息输不出
有若干个学生,每个学生的数据包括学号、姓名、五门课的成绩,从键盘输入若干个学生数据,要求打印出五门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、五门课的成绩、平均分数)。
 用一个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
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
litterpay
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2012-12-21
得分:0 
回复 6楼 a4811
还是不行!!!
2012-12-30 12:44
litterpay
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2012-12-21
得分:0 
回复 8楼 ksddah
总平均分和最高分的学生的数据都在主函数中输出。

这个我没实现!!求帮助
2012-12-30 13:30
litterpay
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2012-12-21
得分:0 
回复 10楼 ksddah
不是,我是说要每个科目的最高分都输出来!!
2012-12-30 14:03
litterpay
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2012-12-21
得分:0 
回复 10楼 ksddah
而且我的学号输不出来
2012-12-30 14:14
litterpay
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2012-12-21
得分:0 
回复 10楼 ksddah
我输出不了最高分的学生信息,是不是输入非法
2012-12-30 15:30
litterpay
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2012-12-21
得分:0 
回复 15楼 ksddah
Visual C++ 6.0
2012-12-30 15:53



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




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

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