C语言刷题(34):用结构体变量和结构体变量的指针作函数参数,有n个结构体,内含学生号,姓名和三门课程成绩。要求求出平均成绩最高的学生的所有信息

#include <stdio.h>
struct Student
{
    long  num;
    char  name[20];
    float score[3];
    float aver;
};
void main()
{
    void input(struct Student stu[]);//实现输入n个结构体的内容
    struct Student max(struct Student *p); //返回平均成绩最大的结构体成员变量
    void print(struct Student stu);//实现输出结构体成员变量的数据
    struct Student stu[3] ,*p = stu;
    input(p);
    print(max(p));
}
void input(struct Student stu[])
{
    int  i;
    for(i =0;i<3;i++)
    {
        printf("请输入第%d个学生的学号 姓名 第一科成绩 第二科成绩 第三科成绩 :\n",i+1);
        scanf("%d %s %f %f %f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
    }
}
struct Student max(struct Student *stu)
{
    int max;
    int i,j;
    for(i=0;i<3;i++)
    {
        stu[i].aver = (stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;
    }
    max = 0;
    if(stu[max].aver<stu[1].aver)
    {
        max =1;
    }
    if(stu[max].aver<stu[2].aver)
    {
        max =2;
    }
    return stu[max];
};
void print(struct Student stu)
{
    printf("学号 : %5d  姓名 : %6s  成绩1 :%f  成绩2 : %f 成绩3 :%f \n 平均成绩%f",stu.num,stu.name
            ,stu.score[0],stu.score[1],stu.score[2],stu.aver);
}

请输入第1个学生的学号 姓名 第一科成绩 第二科成绩 第三科成绩 :
10001 陈辉 95 96 94
请输入第2个学生的学号 姓名 第一科成绩 第二科成绩 第三科成绩 :
10002 陈朗 98 97 99
请输入第3个学生的学号 姓名 第一科成绩 第二科成绩 第三科成绩 :
10003 陈峰 100 98 99
学号 : 10003 姓名 : 陈峰 成绩1 :100.000000 成绩2 : 98.000000 成绩3 :99.000000
平均成绩99.000000

发布了45 篇原创文章 · 获赞 7 · 访问量 1590

猜你喜欢

转载自blog.csdn.net/qq_38173631/article/details/104045656