一个班上有6名学生,每个学生的数据作为一个记录,每个记录包括学号、姓名、三门课程的成绩和三门课程平均成绩。从键盘输入学生的学号、姓名及三门课的成绩。要求打印三门课程平均成绩最高分的学生记录。

一个班上有6名学生,每个学生的数据作为一个记录,每个记录包括学号、姓名、三门课程的成绩和三门课程平均成绩。从键盘输入学生的学号、姓名及三门课的成绩。要求打印三门课程平均成绩最高分的学生记录。

#include <stdio.h>
#include <string.h>
#include <math.h>
struct stu//结构体
{
    
    
    int a;
    char b[10];
    double c[3];
} stu[6];//这里定义了6个人的数据
int main()
{
    
    
    int i,j;
    double sum[10]={
    
    0};//要记得初始化
    double max;
    int t;
    for(i=0; i<6; i++)//输入6个人的数据
    {
    
    
        scanf("%d %s",&stu[i].a,stu[i].b);
        for(j=0; j<3; j++)
        {
    
    
            scanf("%lf",&stu[i].c[j]);
            sum[i]=sum[i]+stu[i].c[j];//在这里直接进行分数相加,便于后面进行比较
        }
    }
    max=sum[0];//这里设置为确定最大平均值做准备
    for(i=1; i<6; i++)
    {
    
    
        if(sum[i]>max)
        {
    
    
            max=sum[i];
            t=i;//记录最大值的下标
        }
    }
    printf("%d\n",stu[t].a);//下面为输出结果
    printf("%s\n",stu[t].b);
    for(i=0; i<3; i++)
    {
    
    
        printf("%.2lf ",stu[t].c[i]);
    }
    return 0;
}

结果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_52988578/article/details/114652356