c语言题目,已知5个学生4门成绩,求出平均成绩并且排序

来源:百度知道 编辑:UC知道 时间:2024/07/06 08:38:08
排序的要求是成绩最高的学生的成绩排在数组的最前面的行,成绩最低的排在数组最后面的行``帮下忙``谢谢
#include<stdio.h>
void main()
{
int i,j,sum,t;
int a[6][6]={{78,82,93,74},{91,82,72,76},{67,89,90,65},{77,88,99,89},{78,89,99,76}};
printf("\n");
for (i=0;i<5;i++)
{ sum=0;
for(j=0;j<5;j++)
sum+=a[i][j];
a[i][5]=sum/5;}
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(a[i][5]<a[i+1][5])
{t=a[i][j];a[i][j]=a[i+1][j];a[i+1][j]=t;}
for(i=0;i<5;i++)
{for(j=0;j<5;j++)
printf("%8d",a[i][j]);
printf("\n");}
}
这是我编的`但是不对``我想不出怎么弄了``请帮我改下这个程序``或者重新编一个也可以``谢谢了``

#include<iostream>
using namespace std;

void main()
{
int i,j,sum,t;
int a[5][5]={{78,82,93,74},{91,82,72,76},{67,89,90,65},{77,88,99,89},{78,89,99,76}}; //5*5够用了
printf("\n");
for (i=0;i<5;i++)
{ sum=0;
for(j=0;j<4;j++) //加前4个成绩
sum+=a[i][j];
a[i][4]=sum/4;}//平均值除4!存在下标为4的元素内;
for(int k=0;k<5;k++)// 加了层循环 参看起泡法
for(i=0;i<5-k;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++)
{for(j=0;j<5;j++)
printf("%8d",a[i][j]);
printf("\n");}
}

再给你补充个更完善滴
#include<stdio.h>
#include<string.h>
struct student
{ char name[20];
int Chinese;
int math;
int english;
int computer;
float ave;
};
void main()
{
int sum,num=0;
float