输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。\n\n输入格式:\n输入第一行给出正整数n(<10)。随后n行,每行按照
时间: 2023-06-05 13:47:46 浏览: 59
下列格式输入一个人的信息:
姓名 生日 电话号码
其中“姓名”是不超过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])
相关问题
输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。
### 回答1:
我可以帮你编写程序,按照年龄从大到小的顺序依次输出通讯录。首先,需要将输入的n个朋友的信息,包括姓名、生日、电话号码,储存到数组中。然后,按照生日从大到小的顺序依次将每个人的信息输出,输出的结果就是按照年龄从大到小的顺序依次输出的通讯录。
### 回答2:
首先,我们可以设计一个类来表示每个朋友的信息,包括姓名、生日和电话号码。然后,我们可以使用一个数组来保存这些朋友对象。
接下来,我们可以编写一个函数来比较两个朋友对象的年龄大小。我们可以通过比较生日来确定年龄。假设生日以字符串的形式给出,格式为YYYY-MM-DD,我们可以将字符串转换为日期对象,然后比较日期对象的大小。
然后,我们可以使用排序算法对朋友数组进行排序。在这个例子中,我们可以使用冒泡排序算法:从第一个对象开始,依次比较相邻的两个对象的年龄大小,如果顺序不对,则交换这两个对象的位置。继续进行下一轮的比较,直到所有对象都按照年龄从大到小的顺序排列。
最后,我们可以按照排好序的顺序依次输出朋友的信息,包括姓名、生日和电话号码。
下面是一个示例的程序实现:
```python
class Friend:
def __init__(self, name, birthday, phone_number):
self.name = name
self.birthday = birthday
self.phone_number = phone_number
def compare_birthday(friend1, friend2):
# 将生日字符串转换为日期对象
birthday1 = datetime.datetime.strptime(friend1.birthday, "%Y-%m-%d")
birthday2 = datetime.datetime.strptime(friend2.birthday, "%Y-%m-%d")
if birthday1 > birthday2:
return -1
elif birthday1 < birthday2:
return 1
else:
return 0
def sort_friends(friends):
n = len(friends)
for i in range(n-1):
for j in range(n-1-i):
if compare_birthday(friends[j], friends[j+1]) < 0:
friends[j], friends[j+1] = friends[j+1], friends[j]
def print_friends(friends):
for friend in friends:
print(friend.name, friend.birthday, friend.phone_number)
# 输入朋友的信息
n = int(input("请输入朋友的个数:"))
friends = []
for i in range(n):
name = input("请输入姓名:")
birthday = input("请输入生日(YYYY-MM-DD):")
phone_number = input("请输入电话号码:")
friends.append(Friend(name, birthday, phone_number))
# 按照年龄从大到小的顺序排序
sort_friends(friends)
# 输出通讯录
print_friends(friends)
```
注意,上述程序中使用了datetime库来进行日期处理,需要提前导入该库。
### 回答3:
可以使用列表来存储每个朋友的信息,并通过排序函数来按照年龄从大到小的顺序进行排序。下面是一个使用Python语言编写的示例程序。
```python
def main():
n = int(input("请输入朋友的数量:"))
friends = []
for i in range(n):
print("请输入第%d个朋友的信息:" % (i+1))
name = input("姓名:")
birthday = input("生日(格式:YYYY-MM-DD):")
phone = input("电话号码:")
friends.append({"name": name, "birthday": birthday, "phone": phone})
friends.sort(key=lambda x: x["birthday"], reverse=True)
print("按照年龄从大到小的顺序依次输出通讯录:")
for friend in friends:
print(friend["name"], friend["birthday"], friend["phone"])
if __name__ == "__main__":
main()
```
这个程序首先会要求输入朋友的数量,然后通过循环获取每个朋友的姓名、生日和电话号码,并将这些信息以字典的形式存储在列表中。接着,使用sort()函数对列表中的元素进行排序,排序的依据是每个朋友的生日。最后,按照年龄从大到小的顺序依次输出每个朋友的姓名、生日和电话号码。
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}")
```
这个程序可以根据你输入的朋友信息,按照年龄从大到小的顺序输出通讯录。