
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;
}
功能都能实现吧
都有图了,不是一目了然了吗?
int main()
{
float stu[10][5];
float a[10];
int i,j;
float sum,ave;
for (i=0; i<10; i++) {
printf("输入第%d个学生的成绩:",i+1);
for (j=0; j<5; j++) {
scanf("%f",&stu[i][j]);
}
}
for (i=0; i<10; i++) {
sum=0;
for (j=0; j<5; j++) {
sum=sum+stu[i][j];
}
printf("第%d个学生的平均分:%.2f\n",i+1,ave=sum/5);
a[i]=ave;
}
for (i=0; i<5; i++) {
sum=0;
for (j=0; j<10; j++) {
sum=sum+stu[j][i];
}
printf("第%d科成绩平均分:%.2f\n",i+1,ave=sum/10);
}
ave=0;
for (i=0; i<10; i++) {
ave=ave+a[i];
}
ave=ave/10;
sum=0;
for (i=0; i<10; i++) {
sum=sum+(a[i]-ave)*(a[i]-ave);
}
printf("平均方差:%f\n",sum/10);
return 0;
}
输入输出数据测试:
输入第1个学生的成绩:44 66 33 55 22
输入第2个学生的成绩:88 44 88 34 66
输入第3个学生的成绩:24 77 44 88 33
输入第4个学生的成绩:56 33 56 67 78
输入第5个学生的成绩:54 44 23 55 66
输入第6个学生的成绩:23 45 54 22 16
输入第7个学生的成绩:55 88 77 55 99
输入第8个学生的成绩:77 57 98 76 98
输入第9个学生的成绩:77 86 47 84 87
输入第10个学生的成绩:100 100 100 99 99
第1个学生的平均分:44.00
第2个学生的平均分:64.00
第3个学生的平均分:53.20
第4个学生的平均分:58.00
第5个学生的平均分:48.40
第6个学生的平均分:32.00
第7个学生的平均分:74.80
第8个学生的平均分:81.20
第9个学生的平均分:76.20
第10个学生的平均分:99.60
第1科成绩平均分:59.80
第2科成绩平均分:64.00
第3科成绩平均分:62.00
第4科成绩平均分:63.50
第5科成绩平均分:66.40
平均方差:364.128357
int main()
{
double Average[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
for (int i=0;i<20;i++)
{
for(int i1=0;i1<5;i1++)
{
int point[5]={0,0,0,0,0};
scanf("%d",point[i1]);
int count+=point[i1];
}
double Average[i]=count/5;
}
for(int i=0;i<20 ;i++)
{
if(Average[i]<60)
{
printf("bujige:\n");
printf("%lf\n",Average[i]);
}
}
for(int i=0;i<20 ;i++)
{
if(Average[i]<Average[i+1])
{
double t=Average[i];
Average[i+1]=Average[i];
Average[i+1]=t;
}
for(int i1=1;i1<21 ;i1++)
{
if(Average[i1]< Average[i1+i])
{
break;
}
else
{
continue;
}
}
break;
}
}
如果是分开存放的话可以定义一个包含20个元素的结构体数组
结构体中存储五门课程成绩
如果是存储总分的话一般数组即可完成
如果代码不想自己写的话
我可以有偿代劳
分开,可以给我写一下吗?
可以,有偿代劳
广告 您可能关注的内容 |