【求助啊】刚学数组,练练手,却...
题目:已知某班N(〈=50)名学生进行了高数、英语和C语言等3门课考试,将3门课的成绩以及计算3门课的总分存放于一个二维数组中,将学生姓名存放在另一个二维字符数组中,按总分(由高到低)排序(注意:学生姓名也应该按总分排序)并输出排序结果(序号、姓名及总分)。程序中那个存放学生姓名的二维数组不知道怎么构建,还有怎么存储啊?有那个大虾能帮忙完善一下吗?真是感激不尽!
以下为我的源程序:
#define N 50
main()
{ int grade[N][4],i,a,j,k,temp;
clrscr();
printf("\nEnter the number of students:");/*输入学生数*/
scanf("%d,&k");
printf("\nEnter indicated grade");
for(i=1;i<=k;i++) /*输入学生成绩*/
{ printf("Student number %3d\n",k);
for(j=1;j<=3;j++)
{printf("%3d:",j);
scanf("%d",&grade[i-1][j-1]);
}
}
for(i=1;i<=k;i++) /*对学生成绩求和*/
{ grade[i-1][4]=0;
for(j=1;j<=3,j++)
grade[i-1][4]+=grade[i-1][j-1];
}
for(i=1;i<k;i++) scanf("%d",&grade[i-1][4]); /*排序*/
for(i=1;i<k;i++)
for(a=0;a<N-i-1;a++)
if(grade[i-1][4]>grade[i][4])
{temp=grade[i-1][4];
grade[i-1][4]=grade[i][4];
grade[i][4]=temp;
}
for(i=1;i<k;i++) printf("%d",grade[i-1][4]);
printf("\nN=%d,sum=grade[i][4]",N,grade[i][4]);
}