C题目:有n个结构体变量,内含学生学号、姓名和3门课程成绩 要求求输出平均成绩最高的学生信息

有n个结构体变量,内含学生学号、姓名和3门课程成绩 要求求输出平均成绩最高的学生信息
代码:
#include <stdio.h>
#define N 3
struct Student{
    int num;
    char name[20];
    float score[3];
    float aver;
};

void input(struct Student stu[]){
    int i;
    printf("请输入各个学生的信息:学号、姓名、3门课成绩:\n");
    for(i=0;i<N;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]);
        stu[i].aver = (stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
    }
}

struct Student max(struct Student stu[]){
    int i,m=0;
    for(i=0;i<N;i++){
        if(stu[i].aver>stu[m].aver){
            m=i;
        }
    }
    return stu[m];
};

void print(struct Student stud){
    printf("\n成绩最高的学生是:\n");
    printf("学号:%d\n姓名:%s\n三门课成绩:%5.1f,%5.1f,%5.1f\n平均成绩:%6.2f", stud.num, stud.name,stud.score[0],stud.score[1],stud.score[2],stud.aver);
}

int main() {
    struct Student stu[N],*p=stu;
    input(p);
    print(max(p));
    return 0;
}
结果:
请输入各个学生的信息:学号、姓名、3门课成绩:
01 li 78 89 98
02 wang 78.5 87 69
03 sun 88 76.5 89

成绩最高的学生是:
学号:1
姓名:li
三门课成绩: 78.0, 89.0, 98.0
平均成绩: 88.33
Process returned 0 (0x0)   execution time : 54.884 s
Press any key to continue.
posted @ 2024-11-25 09:18  昵-称  阅读(109)  评论(0)    收藏  举报