解题思路:
注意事项:
参考代码:
#include<stdio.h>
#include<string.h>
struct data{
char str[101]; //字符串以‘\0’为结束,故需要多存一位
int age;
int sc;
}a[1000],temp;
int main(){
int i,j,n;
while(scanf("%d",&n)!=EOF){ //保证多组输入
for(i=0;i<n;i++){
scanf("%s%d%d",a[i].str,&a[i].age,&a[i].sc);
}
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(a[i].sc>a[j].sc){ //三个判断条件
temp=a[i];a[i]=a[j];a[j]=temp;
}
if(a[i].sc==a[j].sc&&(strcmp(a[i].str,a[j].str))>0){
temp=a[i];a[i]=a[j];a[j]=temp;
}
if(a[i].sc==a[j].sc&&(strcmp(a[i].str,a[j].str))==0&&(a[i].age>a[j].age)){
temp=a[i];a[i]=a[j];a[j]=temp;
}
}
}
for(i=0;i<n;i++){
printf("%s %d %d\n",a[i].str,a[i].age,a[i].sc); //按要求输出
}
}
return 0;
}
0.0分
0 人评分