2020-03-23

有5个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入5个学生数据,要求输出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。要求用一个input函数输入5个学生数据;用一个average函数求总平均分;用max函数找出最高分学生数据;总平均分和最高分的学生的数据都在主函数中输出

#include <stdio.h>
#include <stdlib.h>
#define M 5
 struct student{
    int num;
    char name[20];
    float score[3];
    float aver; 
 }stu[M];
  struct student iNput()
   {
    int i;
    printf("请输入学号、姓名、三门课程成绩:\n");
    for(i=0;i<M;i++)
    {
        scanf("%d %s %f %f %f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
    }
   }   
 float averAge()
   {
    int i;
    for(i=0;i<M;i++)
    {
        stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
    }
   }
   
 int mAx(float a[])
   {
    int n,cmd,max=0;
    for (n=0;n<M;n++) 
    {
        if(a[n]>max)
        {
            max=a[n];
            cmd=n;
        }
    }
    return cmd;                                //这一步能够返回最高分的学生是第几个 
   }
 void main()
 {
    float m[M];
    int i,cmd;
    iNput();                                  //调用input来输入5组数据 
    averAge();                                //调用averAge求出平均分数
    for(i=0;i<M;i++)                           
    {
        m[i]=stu[i].aver;                     //把平均数输入到m数组里面去 
    }
    cmd=mAx(m);                                      //找到最大值所对应的那个学生 
    printf("最高平均分是%f\n",stu[cmd].aver);
    for(i=0;i<M;i++)
    {
        printf("第%d个同学的总平均分是%f\n",i+1,stu[i].aver);
    }
    printf("最高分学生的数据如下:\n");
    printf("学号:%d 姓名:%s A:%.1f B:%.1f C:%.1f 平均分:%.1f\n",stu[cmd].num,stu[cmd].name,stu[cmd].score[0],stu[cmd].score[1],stu[cmd].score[2],stu[cmd].aver);
 }
运行结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。