题目描述
要求定义一个结构体数组,包含年月日,表示每一个人的出生日期。然后对出生日期由小到大排序,并输入排序后的结果。
要求:出生日期的存储必须使用结构体,不能使用其他类型的数据结构。
要求程序全过程对出生日期的输入、访问、输出都必须使用结构。
输入
第一行输入t表示有t个出生日期
每行输入三个整数,分别表示年、月、日
依次输入t个实例
输出
按照从小到大的顺序依次输出出生日期。
IO模式
本题IO模式为标准输入/输出(Standard IO),你需要从标准输入流中读入数据,并将答案输出至标准输出流中。
输入样例1
10\n
2000 1 1\n
2002 11 2\n
2002 11 2\n
2003 4 25\n
2004 5 2\n
2001 11 14\n
2002 12 1\n
2000 10 21\n
2002 5 5\n
2004 5 2
输出样例1
1:2000-1-1\n
2:2000-10-21\n
3:2001-11-14\n
4:2002-5-5\n
5:2002-11-2\n
6:2002-11-2\n
7:2002-12-1\n
8:2003-4-25\n
9:2004-5-2\n
10:2004-5-2
AC代码
#include<iostream>
using namespace std;
struct Birthday {
int year, month, day;
int index;
};
int main() {
int t;
cin >> t;
Birthday *stu=new Birthday[t],temp;
for (int i = 0; i < t; i++) {
cin >> stu[i].year
>> stu[i].month
>> stu[i].day;
stu[i].index= stu[i].year * 10000 + stu[i].month * 100 + stu[i].day;
}
for (int i = 0; i < t; i++) {
for (int j = i+1; j < t; j++) {
if (stu[i].index > stu[j].index) {
temp = stu[i];
stu[i] = stu[j];
stu[j] = temp;
}
}
}
for (int i = 0; i < t; i++) {
cout << i+1 << ":"
<< stu[i].year << "-"
<< stu[i].month << "-"
<< stu[i].day << endl;
}
return 0;
}