#include
#include
#include
#include
const int studentNum=39; //学生数目
const int nameLen=20; //学生姓名长度
const int idLen=15; //学生学号长度
int main()
{
char name[studentNum][nameLen]; //学生姓名
char id[studentNum][idLen]; //学生学号
float score[studentNum][4]; //学生成绩
float sum;
float average[studentNum]; //平均成绩
int i,j;
/*******读入学生的姓名、学号、成绩和计算平均成绩**********/
cout <<"请输入"<
cin >>name[i] >>id[i];
sum=0;
for(j=0;j<4;j++)
{
cin >>score[i][j];
}
for(j=0;j<3;j++)
{
sum+=score[i][j];
}
average[i]=sum/3;
cout <
/******按照学生成绩排序************/
int max; //排序,记录当前一趟排序的最大值
for(i=0;i
max=i; //假定第i个元素是最大值
for(j=i+1;j
if(average[j]>average[max])
max=j;
}
/***将找到的具有最大值的元素放到当前一趟排序的第一个位置***/
if(i!=max)
{
float tempFloat;
char tempStr[nameLen];
/***交换两个位置成绩****/
tempFloat=average[i];
average[i]=average[max];
average[max]=tempFloat;
for(j=0;j<4;j++){
tempFloat=score[i][j];
score[i][j]=score[max][j];
score[max][j]=tempFloat;}
/***交换两个位置的学生姓名***/
strcpy(tempStr,name[i]);
strcpy(name[i],name[max]);
strcpy(name[max],tempStr);
/****交换两个位置的学号***/
strcpy(tempStr,id[i]);
strcpy(id[i],id[max]);
strcpy(id[max],tempStr);
}
}
/*****输出排序后的结果******/
cout <
system("pause");
return 0;
}
这是我给另一个人的,你自己改下吧,我写的是输入姓名 学号 3课成绩 总成绩 最后按总分从大到小排名
历害