用struct student的形式
c语言作业
大佬帮帮忙
学生的记录由学号、姓名和C语言成绩组成,根据班级人数,将学生记录存放在结构体数组中。请编程实现将分数高于平均分的学生记录存放到另一个结构体数组中,输出平均分、相应学生记录和人数。要求:班级人数、学生记录均由键盘输入。
/*
学生的记录由学号、姓名和C语言成绩组成,根据班级人数,将学生记录存放在结构体数组中。
请编程实现将分数高于平均分的学生记录存放到另一个结构体数组中,
输出平均分、相应学生记录和人数。要求:班级人数、学生记录均由键盘输入。
*/
#include <stdio.h>
void main()
{
student stu[100];
student goodstu[100];
int i, n,m=0;
float sum = 0;
printf("请输入学生人数:");
scanf_s("%d", &n);
printf("\n");
for (i = 0; i < n; i++)
{
printf("请输入第%d个学生学号:",i+1);
scanf_s("%d", &stu[i].nID);
printf("\n请输入第%d个学生姓名:", i + 1);
scanf_s("%s", stu[i].name,20);
printf("\n请输入第%d个学生C语言成绩:", i + 1);
scanf_s("%f", &stu[i].score);
printf("\n");
sum += stu[i].score;
}
float avg = sum / n;
//
for (i = 0; i < n; i++)
{
if (stu[i].score > avg)
{
goodstu[m].nID = stu[i].nID;
goodstu[m].score = stu[i].score;
memcpy(goodstu[m].name, stu[i].name, 20);
m++;
}
}
printf("平均分为:%.1f,超过平均分的学生共有%d人\n", avg,m);
for (i = 0; i < m; i++)
{
printf("%d\t%s\t%.1f\n", goodstu[i].nID, goodstu[i].name, goodstu[i].score);
}
}