c语言:(结构体)有10个学生,每个学生包括学号,姓名,3门课成绩,要求输出各学生3门成绩的平均分并由高到低输出(包括学号,姓名,3门课成绩,平均分)
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
struct student
{
int num;
char name[20];
float score[3];
}students[10];
int main(){
int max = 0,max_i = 0;
float ave1 = 0,ave2 = 0,ave3 = 0;
int sum = 0;
printf("请输入学生的学号,姓名,成绩:\n");
for (int i = 0; i < 10; i++)
{
scanf("%d %s %f %f %f",&students[i].num,students[i].name,&students[i].score[0],
&students[i].score[1],&students[i].score[2]);
sum = students[i].score[0] + students[i].score[1] + students[i].score[2];
if (sum > max)
{
max = sum;
max_i = i;
}
ave1 = ave1 + students[i].score[0];
ave2 = ave2 + students[i].score[1];
ave3 = ave3 + students[i].score[2];
}
ave1 = ave1 / 10;
ave2 = ave2 / 10;
ave3 = ave3 / 10;
printf("每门课的平均分:%2.1f %2.1f %2.1f\n",ave1,ave2,ave3);
printf("学号:%d 姓名:%s 成绩:%2.1f %2.1f %2.1f 平均成绩:%2.1f\n",students[max_i].num,students[max_i].name,
students[max_i].score[0],students[max_i].score[1],students[max_i].score[2],
(students[max_i].score[0] + students[max_i].score[1] + students[max_i].score[2]) / 3.0);
return 0;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/a998c258c74044a18ef0570aeb51436a.png)