#include<stdio.h>
#include<math.h>
#include<string.h>
#include<malloc.h>
struct Student
{
int num;
char name[40];
int score[3];
float average;
}stu[10];
int main()
{
void high(struct Student stu[]);
int i, j;
float sum = 0;
for (i = 0; i<3; i++)
{
printf("学生NO.:");
scanf("%d", &stu[i].num);
printf("姓名:");
scanf("%s", &stu[i].name);
for (j = 0; j<10; j++)
{
printf("学生:[%d].成绩:[%d]:", i, j);
scanf("%f", &stu[i].score[j]);
}
printf("\n");
}
//各学生平均成绩
for (i = 0; i < 10; i++)
{
for (j = 0; j < 3; j++)
{
sum = sum + stu[i].score[j];
}
stu[i].average = sum / 3;
sum = 0;
printf("学号:%d 平均成绩:%f\n", stu[i].num,stu[i].average);
}
//每门课平均成绩
float average1[3];//定义一个装3门课的平均成绩的数组
sum = 0;
for (j = 0; j<3; j++)
{
for (i = 0; i<10; i++)
{
sum = sum + stu[i].score[j];
}
average1[j] = sum / 10;
sum = 0;
}
for (i = 0; i<3; i++)//输出各门课的平均成绩
{
printf("第%d门课的平均成绩\n",i+1) ;
printf("%f", average1[i]);
printf("\n");
}
high(stu);
return 0;
}
void high(struct Student stu[])
{
int i, j;
int t = 0;
for (i = 0; i < 10; i++)
{
float max = stu[i].average;
if (max < stu[i].average)
{
max = stu[i].average;
}
t = i;
}
printf("最高分学生数据为:");
printf("学号%d 姓名%s\t", stu[t].num, stu[t].name);
printf("成绩:\n");
for (j = 0; j < 3; j++)
{
printf("%d\t", stu[t].score[j]);
printf("\n");
}
}
有10个学生,每个学生的数据包括学号、姓名、三门课成绩,输入10个学生数据要求输出三门课程总平均成绩,以及最高分学生数据
最新推荐文章于 2024-03-27 17:48:18 发布