已知5个学生的4门课的成绩,要求求出每个学生的平均成绩,然后对平均成绩从高到低将各学生的成绩排 序记录

(成绩最高的学生的排在数组的最前行,成绩最低的学生牌子啊数组的最后面的一行)?

第1个回答  2011-05-27
已知5个学生的4门课的成绩,要求求出每个学生的平均成绩,然后对平均成绩从高到低将各学生的成绩排序记录(成绩最高的学生的排在数组的最前行,成绩最低的学生牌子啊数组的最后面的一行)?

方法一:#include <stdio.h>
void main()
{
float a[5][5],sum=0,t;
int i,j,k;
for(i=0;i<5;i++)
{printf("please input the %d student's scores:",i+1);
for(j=0;j<=3;j++)
{
scanf("%f",&a[i][j]);
}
}
for(i=0;i<5;i++)
for(j=0,a[i][4]=0;j<4;j++)
{ a[i][4]+=a[i][j];
if(j==3) a[i][4]=a[i][4]/4;
}
for(k=0;k<4;k++)
for(i=0;i<5;i++)
if(a[i][4]<a[i+1][4])
for(j=0;j<5;j++)
{t=a[i][j];a[i][j]=a[i+1][j];a[i+1][j]=t;}

for(i=0;i<5;i++)
{
printf("\n");
for(j=0;j<5;j++)
printf("%.2f ",a[i][j]);
}

}

方法二:#include"stdio.h"
void main()
{
float a[5][4],b[5]={0,0,0,0,0},t;
int i,j;
printf("请输入5个同学4门功课的成绩:\n");
for(i=0;i<5;i++)
for(j=0;j<4;j++)
scanf("%f",&a[i][j]);
for(i=0;i<5;i++)
for(j=0;j<4;j++)
b[i]+=a[i][j];
for(j=0;j<4;j++)
for(i=0;i<4-j;i++)
if(b[i]<b[i+1]) {t=b[i];b[i]=b[i+1];b[i+1]=t;}
for(i=0;i<5;i++)
printf("第%d名的平均分数为%.2f\n",i+1,b[i]/4);
}本回答被提问者和网友采纳
相似回答