#include <iostream>
#include <algorithm>
#include <string.h>
#include <stdio.h>
using namespace std;
struct st
{
char name[10];
int age;
int sc;
}sd[10]; //思考:这里是否可以重新定义一个结构体类来进行解决问题?为什么??
bool comp(st a,st b)
{
if(a.sc!=b.sc) return a.sc<b.sc;
else
if(a.age!=b.age) return a.age<b.age;
else
if(strcmp(a.name,b.name)<0) return true;
else return false;
}
void set(st &s,char *c,int a,int b)
{
s.age=a;
s.sc=b;
strcpy(s.name,c);
}
int main()
{
int n;//学生数。
cin>>n;
for(int i=0;i<n;i++)
{
cin>>sd[i].name>>sd[i].age>>sd[i].sc;
}
cout<<endl;
sort(sd,sd+n,comp);
for(int i=0;i<n;i++)
{
cout<<sd[i].name<<" "<<sd[i].age<<" "<<sd[i].sc<<endl;
}
return 0;
}
#include <iostream>
#include <algorithm>
#include <string.h>
#include <stdio.h>
using namespace std;
typedef struct st
{
char name[10];
int age;
int sc;
}st; //这里加上37行的定义,与上边的程序是等价的。
bool comp(st a,st b)
{
if(a.sc!=b.sc) return a.sc<b.sc;
else
if(a.age!=b.age) return a.age<b.age;
else
if(strcmp(a.name,b.name)<0) return true;
else return false;
}
void set(st &s,char *c,int a,int b)
{
s.age=a;
s.sc=b;
strcpy(s.name,c);
}
int main()
{
st sd[10];
int n;//学生数。
cin>>n;
for(int i=0;i<n;i++)
{
cin>>sd[i].name>>sd[i].age>>sd[i].sc;
}
cout<<endl;
sort(sd,sd+n,comp);
for(int i=0;i<n;i++)
{
cout<<sd[i].name<<" "<<sd[i].age<<" "<<sd[i].sc<<endl;
}
return 0;
}