32分求助
  • 板块P1104 生日
  • 楼主AKkkk_TIX
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/8/23 17:43
  • 上次更新2024/8/23 20:33:37
查看原帖
32分求助
1041765
AKkkk_TIX楼主2024/8/23 17:43
#include <bits/stdc++.h>
using namespace std;
struct stu {
	string name;
	int year, month, day, num;
	friend istream & operator >> ( istream &in, stu &x ) {
		cin >> x.name >> x.year >> x.month >> x.day;
		return cin;
	}
} a[100];
int n, i, j;
int main() {
	cin >> n;
	for (i = 0; i < n; i++){
		cin >> a[i];
		a[i].num = i + 1;
	}
	for(i = 0;i < n - 1;i++) {
		bool b = true;		                                                            
		for(j = n - 1;j >= i + 1;j--)
			if ( a[j].year < a[j - 1].year 
		      || a[j].year == a[j - 1].year && a[j].month < a[j - 1].month 
		      || a[j].year == a[j - 1].year && a[j].month == a[j - 1].month && a[j].day < a[j - 1].day 
		      || a[j].year == a[j - 1].year && a[j].month == a[j - 1].month && a[j].day == a[j - 1].day 
		                                            && a[j].num > a[j - 1].num ){
				swap ( a[i], a[j] );
                b = false;
            }
		if( b ) break;
	}

	for (i = 0; i < n; i++){
		cout << a[i].name;
        if(i != n - 1)
            cout << "\n";
    }
	return 0;
}

记录详情

2024/8/23 17:43
加载中...