c语言。20个人,5门课程,计算每个人的平均成绩及每门课的平均成绩,输出不及格学生名单,成绩排序,使用数组实现,学号输出
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
struct stu
{int id;
int cj[5];
int zf;
};
int main()
{int i,j,k;
struct stu a[21]={0},b;
srand(time(NULL));
for(i=0;i<20;i++)
{a[i].id=i+1;
for(j=0;j<5;j++)
{a[i].cj[j]=rand()%61+40;
a[i].zf+=a[i].cj[j];
a[20].cj[j]+=a[i].cj[j];
}
a[20].zf+=a[i].zf;
}
for(i=0;i<19;i++)
for(j=0;j<19-i;j++)
if(a[j].zf<a[j+1].zf)
{b=a[j];a[j]=a[j+1];a[j+1]=b;}
printf(" 学号 学科1 学科2 学科3 学科4 学科5 平均分\n");
for(i=0;i<20;i++)
printf("%7d%6d%6d%6d%6d%6d%7.1f\n",a[i].id,a[i].cj[0],a[i].cj[1],a[i].cj[2],a[i].cj[3],a[i].cj[4],a[i].zf/5.0);
i=20;
printf("%7s%6.1f%6.1f%6.1f%6.1f%6.1f%7.1f\n","平均分",a[i].cj[0]/20.0,a[i].cj[1]/20.0,a[i].cj[2]/20.0,a[i].cj[3]/20.0,a[i].cj[4]/20.0,a[i].zf/100.0);
printf("不及格学生学号:");
for(i=0;i<20;i++)
{k=0;
for(j=0;j<5;j++)
if(a[i].cj[j]<60)k=1;
if(k)printf("%3d",a[i].id);
}
printf("\n");
return 0;
}
追问功能都能实现吧
追答都有图了,不是一目了然了吗?
追问好的,谢谢你了
追答满意请采纳。
分开,可以给我写一下吗?
追答可以,有偿代劳
追问想要什么偿?
追答支付宝10元帮你搞定
本回答被网友采纳