输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。\n\n输入格式:\n输入第一行给出正整数n(<10)。随后n行,每行按照
时间: 2023-06-05 22:47:46 浏览: 90
下列格式输入一个人的信息:
姓名 生日 电话号码
其中“姓名”是不超过10个字符、不包含空格的非空字符串,“生日”是按yyyy/mm/dd格式给出的日期,“电话号码”是不超过15个字符的字符串,且不包含空格。题目保证所有人的生日均不相同。
输出格式:
按照年龄从大到小的顺序依次输出通讯录,格式同输入格式。若有年龄相同的人,则按照输入顺序输出。
实现代码示例(Python):
n = int(input())
lst = []
for i in range(n):
name, birth, phone = input().split()
lst.append((name, birth, phone))
lst.sort(key=lambda x: x[1], reverse=True)
for i in lst:
print(i[0], i[1], i[2])
相关问题
python输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同
好的,我可以帮你解决这道题目。
你可以使用Python中的字典来存储每个朋友的信息,其中键为姓名,值为另一个字典,包含生日和电话号码两个键值对。
然后,你可以使用Python中的sorted函数,按照生日进行排序。但是由于我们是按照年龄从大到小排序,因此我们需要对生日进行转换,将其转换为距离现在的天数,然后按照距离现在的天数进行排序。
以下是完整的代码:
```python
from datetime import date
def days_between(d1, d2):
return (d2 - d1).days
n = int(input("请输入朋友的数量:"))
friends = {}
for i in range(n):
name = input("请输入姓名:")
birthday = input("请输入生日(格式为yyyy-mm-dd):")
phone = input("请输入电话号码:")
year, month, day = map(int, birthday.split('-'))
birthday_date = date(year, month, day)
days = days_between(birthday_date, date.today())
friends[name] = {'birthday': birthday, 'phone': phone, 'age': days}
sorted_friends = sorted(friends.items(), key=lambda x: x[1]['age'], reverse=True)
print("按照年龄从大到小的顺序依次输出通讯录:")
for friend in sorted_friends:
name = friend[0]
birthday = friend[1]['birthday']
phone = friend[1]['phone']
print(f"姓名: {name}, 生日: {birthday}, 电话号码: {phone}")
```
这个程序可以根据你输入的朋友信息,按照年龄从大到小的顺序输出通讯录。
c语言编程输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。
为了实现这个功能,你可以使用结构体来存储每个人的姓名、生日和电话号码,然后创建一个结构体数组来存储这些信息,并通过比较年龄来排序。下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h> // 使用strcmp函数进行字符串比较
// 定义一个人的数据结构
typedef struct {
char name[50];
int birthday; // 假设生日是年份,可以根据需求转换为日期或者其他形式
char phone_number[20];
} Person;
// 比较两个Person结构体按年龄从小到大的顺序
int compare_age(const void* a, const void* b) {
Person* p1 = (Person*)a;
Person* p2 = (Person*)b;
return p2->birthday - p1->birthday;
}
void print_oldest_to_youngest(Person people[], int n) {
qsort(people, n, sizeof(Person), compare_age); // 排序
for (int i = 0; i < n; i++) {
printf("%s, 生日: %d, 电话: %s\n", people[i].name, people[i].birthday, people[i].phone_number);
}
}
int main() {
int num_of_friends;
printf("请输入朋友的数量:");
scanf("%d", &num_of_friends);
Person friends[num_of_friends]; // 创建数组存储信息
// 循环获取每个朋友的信息并存入结构体
for (int i = 0; i < num_of_friends; i++) {
printf("请输入第%d位朋友的名字:", i + 1);
scanf("%s", friends[i].name);
printf("请输入第%d位朋友的生日:", i + 1);
scanf("%d", &friends[i].birthday);
printf("请输入第%d位朋友的电话号码:", i + 1);
scanf("%s", friends[i].phone_number);
}
print_oldest_to_youngest(friends, num_of_friends);
return 0;
}
阅读全文