1.有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生的数据,要求打印出3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3门课成绩、平均分数)。
#include<stdio.h>
struct student
{
int num;
char name[20];
float score[3];
}stu[10];
int ave(struct student stu[])
{
float ave[3];
float sum;
for (int j = 0; j < 3; j++)
{
sum = 0;
for (int i = 0; i < 10; i++)
{
sum += stu[i].score[j];
}
ave[j] = sum / 10;
}
for (int j = 0; j < 3; j++)
{
printf("第%d门课程的平均成绩为:%.3f\n",j+1, ave[j]);
}
puts("*****************************************************");
return 0;
}
void find(struct student stu[])
{
int i, j;
float sum;
float ave[10];
for (i = 0; i < 10; i++)
{
sum = 0;
for (j = 0; j < 3; j++)
{
sum += stu[i].score[j];
}
ave[i] = sum / 3;
}
for (i = 0; i < 10; i++)
{
printf("第%d个学生的平均分为:%.2f\n", i + 1, ave[i]);
}
int t = 0;
int max = 0;
for (i = 0; i < 10; i++)
{
if (ave[max] < ave[i])
{
max = i;
t = i;
}
}
printf("最高分的学生数据为:%d,%s,%.2f,%.2f,%.2f,%.2f", stu[t].num, stu[t].name, stu[t].score[0], stu[t].score[1], stu[t].score[2], ave[t]);
}
void main()
{
printf("请输入十名学生的信息:\n");
for (int i = 0; i < 10; i++)
{
scanf_s("%d", &stu[i].num);
scanf_s("%s", stu[i].name);
for (int j = 0; j < 3; j++)
{
scanf_s("%f", &stu[i].score[j]);
}
}
puts("************************************");
ave(stu);
find(stu);
}