每日一题_______
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);
}
运行结果