#include<stdio.h>
#define N 10
struct Student{
int num; //学号只能是数字,要是加了字母,会报错,这也是这个程序的一个小bug
char name[20];
float score[3];
float aver;
};
void input(struct Student stu[]); //输入函数
struct Student max(struct Student stu[]); //最大值函数
void print(struct Student stu1); //打印函数 //三个函数的申明
int main(){
struct Student stu[N],*p; //建立一个数组,一个指针变量
p=stu; //指针p用来存放数组数据
input(p); //进行一个简单的接收,具体操作还得看接收函数
print(max(p)); //打印
return 0; //主函数结束
}
void input(struct Student stu[]){
int i;
printf("请输入各个学生的学号、姓名和三门课成绩:\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; //aver也是student里面的成员
}
}
struct Student max(struct Student stu[]){
int i,m=0; //m的细节初始化
for(i=1;i<N;i++){
if(stu[i].aver>stu[m].aver) //比较下谁大,比较十次,有点冒泡排序那味了
m=i;
}
return stu[m]; //返回最大值
}
void print(struct Student stu1){
printf("\n成绩最高学生的学生是:\n");
printf("学号:%d\n姓名:%s\n三门课成绩:%8.2f%8.2f%8.2f\n平均成绩%8.2f\n",stu1.num,stu1.name,stu1.score[0],stu1.score[1],stu1.score[2],stu1.aver);
}
有10个学生,每个学生的数据包括学号、姓名、3门课成绩,输入10个学生的数据,要求输出3门课的总平均成绩,以及最高分的学生的数据
最新推荐文章于 2023-03-31 10:56:14 发布