p1104
P1104 生日
思路:首先定义struct
struct stu{
int year,mouth,day;
string name;
}a[105];
然后cin
接着排序
最后输出
代码
#include<bits/stdc++.h>
using namespace std;
struct stu{
int year,month,day,id;
string name;
}a[105];
//返回true代表需要交换
bool needSwap(stu x,stu y){
if(x.year!=y.year) return x.year>y.year;
if(x.month!=y.month) return x.month>y.month;
if(x.day!=y.day) return x.day>y.day;
return x.id<y.id;//生日相同,输入靠前的换到后面
}
int n;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].name>>a[i].year>>a[i].month>>a[i].day;
a[i].id=i;//记录输入顺序
}
//冒泡排序
for(int i=1;i<n;i++){
for(int j=1;j<=n-i;j++){
if(needSwap(a[j],a[j+1])){
swap(a[j],a[j+1]);
}
}
}
for(int i=1;i<=n;i++) cout<<a[i].name<<"\n";
return 0;
}
浙公网安备 33010602011771号