2021-10-12——结构体输入学生成绩,输出平均成绩最高的学生信息

每日一题_______

26 .编写程序,输入下列学生成绩表中的数据,采用结构体数组存放,输出平均分最高的学生的所有信息。
在这里插入图片描述

#include <stdio.h>
#define N 4      //要输入学生信息个数
struct student{
char name[20];
double chinese;
double math;
double english;
};

void Input(struct student stu[]);
void SurveyMax(struct student stu[]);   //函数声明
int main()
{
struct student stu[N];
   Input(stu);            //输入学生信息
   SurveyMax(stu);        //查找最大成绩平均值学生信息
   return 0;
}
//输入学生信息
void Input(struct student stu[]){
int i;
for(i=0;i<N;i++){
        printf("请输入第%d个学生的信息:\n",i+1);
    scanf("%s %lf %lf %lf",&stu[i].name,&stu[i].chinese,&stu[i].math,&stu[i].english);
}
}
//查找最大成绩平均值学生信息
void SurveyMax(struct student stu[]){
struct student temp; //中间值交换,思路:先假定第一个学生定位平均值最大,如果第二个大于第一个,将第二个定位最大都放在stu[0]这个位置,最后输出stu[0]学生的信息。
int i;
double MaxEqual=(stu[0].chinese+stu[0].math+stu[0].english)/3;   //假定第一个最大
for(i=1;i<N;i++){
        if((stu[i].chinese+stu[i].math+stu[i].english)/3>MaxEqual){  //第二个成绩与假定最大值比较
            temp=stu[0];
            stu[0]=stu[i];
            stu[i]=temp;
        }
}
printf("平均分最高的学生信息:姓名:%s  语文:%.1lf  数学:%.1lf  英语:%.1lf\n",stu[0].name,stu[0].chinese,stu[0].math,stu[0].english);
}

运行结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值