(2)通讯录排序 输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同 输入格式: 输入第一行给出正整数n(<10)随后n行,每行按照“姓名 生日 电话号码”的格式 给出一位朋友的信息,其中“姓名”是长度不超过30的英文字母组成的字符串,“生日”是yywymmdd格式的日期,“电话号码”是不超过17位的数字及+、组成的字符串。
时间: 2024-02-18 12:05:25 浏览: 140
下面是一份可以实现题目要求的C++代码:
```
#include <iostream>
#include <string>
using namespace std;
struct Friend {
string name;
int birthday;
string phone;
};
int main() {
int n;
cin >> n;
Friend friends[n];
// 读入朋友信息
for (int i = 0; i < n; i++) {
cin >> friends[i].name >> friends[i].birthday >> friends[i].phone;
}
// 使用选择排序按照年龄排序
for (int i = 0; i < n - 1; i++) {
int min_index = i;
for (int j = i + 1; j < n; j++) {
if (friends[j].birthday < friends[min_index].birthday) {
min_index = j;
}
}
if (min_index != i) {
swap(friends[i], friends[min_index]);
}
}
// 按照年龄从大到小输出朋友信息
for (int i = n - 1; i >= 0; i--) {
cout << friends[i].name << " " << friends[i].birthday << " " << friends[i].phone << endl;
}
return 0;
}
```
该代码中使用了结构体来存储每个朋友的姓名、生日和电话号码,并使用选择排序算法按照年龄从小到大排序。最后按照年龄从大到小的顺序输出排序后的朋友信息。
阅读全文