修改了的程序
#include "stdlib.h"
#include "stdio.h"
#include "string.h"
#define N 50
main()
{ int grade[N][4],i,a,j,k,temp,sum;
char name[N][10],t[10];
printf("请输入学生数:\n");/*输入学生数*/
scanf("%d",&k);
for(i=0;i<k;i++)
/*输入学生成绩*/
{
printf("请输入第%d个学生姓名:",i+1);
gets(name[i]);
printf("\n");
for(j=0;j<3;j++)
{ printf("请输入第%3d科成绩\n",j+1);
scanf("%d",&grade[i][j]);
}grade[i][3]=grade[i][0]+grade[i][1]+grade[i][2];
/*对学生成绩求和,保存在后面喃!*/
}
//sum=0;
//for(i=0;i<k;i++)
//{
// for(j=0;j<4;j++)
// sum+=grade[i][j];
// }
for(i=0;i<k-2;i++) /*排序,交换成绩,名字*/
for(j=i+1;j<k-1;j++)
if(grade[i][3]<grade[j][3])
{ temp=grade[i][3];
grade[i][3]=grade[j][3];
grade[j][3]=temp;
strcpy(t, name[i]);
strcpy(name[i],name[j]);
strcpy(name[j],t);
}
// printf("%d",grade[i][j]);
for(i=0;i<k;i++)
printf("\nNO:%d,mame:%s sum=%d",i+1,name[i],grade[i][3]);
system("pause");
}