64,646
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
int main(){
int N=0;
cin>>N;
char (*namemarks)[128]= new char[N][128];
char name[32];
int mark, mark1, mark2, mark3;
for(int i=0;i<N;i++){
cin>> name >> mark >> mark1 >> mark2 >> mark3;
sprintf(namemarks[i],"%3d %3d %3d %3d %s", mark, mark1,mark2,mark3, name);
}
// selectsort:
int j,max;
char temp[128];
for(i=0;i <N-1;++i){
max=i;
for(j=i+1;j<N;++j)
if( strcmp(namemarks[max], namemarks[j]) < 0)
max=j;
if(max!=i){
strcpy(temp, namemarks[i]);
strcpy(namemarks[i], namemarks[max]);
strcpy(namemarks[max], temp);
}
}
// print the result:
cout<< endl;
for(i=0;i<N;i++)
cout<< namemarks[i]+16 <<endl; // from 16th, it's name
return 0;
}