typedef struct _student
{
char name[20];
unsigned int nID;
int score;
}student;
int main()
{
student stu[50];
int i,n;
printf("请输入实际考生人数:");
scanf_s("%d", &n);
for (i = 0; i < n; i++)
{
printf("\n请输入第%d个学生姓名:", i + 1);
scanf_s("%s", stu[i].name, 20);
printf("\n请输入第%d个学生学号:", i + 1);
scanf_s("%d", &stu[i].nID);
printf("\n请输入第%d个学生成绩:", i + 1);
scanf_s("%d", &stu[i].score);
}
//
int nL = 0, nJ = 0, nM = 0, nH = 0, nC = 0;
int nMax = 0, nMin = 101;
float fAvg = 0.0,fTotal = 0.0;
for (i = 0; i < n; i++)
{
if (stu[i].score >= 90)
nC++;
else if (stu[i].score >= 80)
nH++;
else if (stu[i].score >= 70)
nM++;
else if (stu[i].score >= 60)
nJ++;
else
nL++;
if (nMax < stu[i].score)
nMax = stu[i].score;
if (nMin > stu[i].score)
nMin = stu[i].score;
fTotal += stu[i].score;
}
fAvg = fTotal / n;
printf("最高分:%d,最低分:%d,平均分:%.2f\n", nMax, nMin, fAvg);
printf("优秀人数:%d,占比:.2f%%%\n", nC, nC*1.0 / n * 100);
printf("良好人数:%d,占比:.2f%%%\n", nH, nH*1.0 / n * 100);
printf("中等人数:%d,占比:.2f%%%\n", nM, nM*1.0 / n * 100);
printf("及格人数:%d,占比:.2f%%%\n", nJ, nJ*1.0 / n * 100);
printf("不及格人数:%d,占比:.2f%%%\n", nL, nL*1.0 / n * 100);
return 0;
}
你这实考人数是输入数据呗?
只需要计算其它红色数值?
不需要按这个表格式输出吧?
这个写起来也不复杂的,用结构体,函数,循环等C语言的基本知识,就能做好这个系统。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632