解题思路:
这道题主要就是sort函数的运用,不过这道题要稍微用点小技巧,因为题目要求如果有两个同学生日相同,输入靠后的同学先输出,这样的话我们必须加上一个数据来判定谁先输入谁先输出,所以我在结构体里面加了个ci。
#include#include using namespace std; int n; struct stu { int nian, yue, ri, ci; string name; }ans[100]; bool cmp(stu a, stu b) { if (a.nian == b.nian) { if (a.yue == b.yue) { if (a.ri == b.ri) { return a.ci > b.ci; } return a.ri < b.ri; } return a.yue < b.yue; } return a.nian < b.nian; } int main() { cin >> n; for (int i = 0; i < n; ++i) { cin >> ans[i].name >> ans[i].nian >> ans[i].yue >> ans[i].ri; ans[i].ci = i; } sort(ans, ans + n, cmp); for (int i = 0; i < n; ++i) cout << ans[i].name << endl; return 0; }



