用函数的调用编程:输入n个学生的m门成绩,并按总分由高到低将名字排序

如题所述

第一步:抽象出算法数据结构。首先学生总数是n,而每个学生拥有m个成绩,即对应一个n中的i,有m个数据与之对应。因此可以得到结论,采用二维数组来储存n个学生m门成绩。按照总分排序,即将每个i对应的m门成绩加起来进行排序即可。
第二步:具体算法(c语言伪代码)
#include <stdio.h>
#include <stdlib.h>
#define MaxVertexNum 100

void order(int num[][],int n,in m)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=2;j<m;j++)
{
num[i][1]=num[i][1]+num[i][j]
}
}

int temp;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(num[0][1]<num[i][1])
{
num[0][1]= num[i][1];
}
}

}
}
int main(int argc, char *argv[])
{
int n,m,i,j;
printf("请输入学生的个数n和成绩门数m,用空格分开\n");
scanf("%d %d",&n,&m);
int scores[n-1][m];
//输入成绩
for(i=0;i<n;i++){
printf("请输入第%d个学生的成绩:\n",i);
scores[i][0]=i;
for(j=1;j<m;j++)
{
scanf("%d",&scores[i][j]);
}
}
//开始排序
system("PAUSE");
return 0;
}
温馨提示:答案为网友推荐,仅供参考