7-34 通讯录的录入与显示 (10 分)C++

老是说我类型之间不能相互比较,我已经全部改了仍然不能通过,但是自己编译结果是可行的。
重复10次也可行。
例子也可行。
是个用户输出一个也可行。

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main()
{
   
   
	unsigned int N;
	string str;
	cin >> N;
	cin.ignore();
	char name[10][100];
	char gender[10][100]
### 思路析 为解决PTA 7 - 6通讯录录入显示问题,可按以下步骤进行: 1. **输入记录数量**:读取用户输入的记录数量 `N`。 2. **录入记录**:通过循环 `N` 次,每次读取一条包含姓名、出生日期、性别、固定电话号码、移动电话号码的记录,并将其存储在一个合适的数据结构(如列表)中。 3. **输入查询索引**:读取用户想要查询的记录索引列表。 4. **显示记录**:遍历查询索引列表,根据索引从存储记录的数据结构中查找对应的记录并显示。若索引越界,则显示“Not Found”。 ### 代码示例(Python) ```python # 读取记录数量 N = int(input()) # 存储通讯录记录 contacts = [] # 录入记录 for _ in range(N): info = input().split() contacts.append(info) # 读取查询的索引 query_indexes = list(map(int, input().split())) # 显示记录 for index in query_indexes: if 0 <= index < N: record = contacts[index] name, birth, gender, landline, mobile = record print(f"{name} {birth} {gender} {landline} {mobile}") else: print("Not Found") ``` ### C++ 代码示例 ```cpp #include <iostream> #include <vector> #include <string> using namespace std; struct Contact { string name; string birth; string gender; string landline; string mobile; }; int main() { int N; cin >> N; vector<Contact> contacts(N); // 消耗掉 cin 读取 N 后的换行符 cin.ignore(); // 录入记录 for (int i = 0; i < N; ++i) { getline(cin, contacts[i].name, &#39; &#39;); getline(cin, contacts[i].birth, &#39; &#39;); getline(cin, contacts[i].gender, &#39; &#39;); getline(cin, contacts[i].landline, &#39; &#39;); getline(cin, contacts[i].mobile); } int index; while (cin >> index) { if (index >= 0 && index < N) { Contact &record = contacts[index]; cout << record.name << " " << record.birth << " " << record.gender << " " << record.landline << " " << record.mobile << endl; } else { cout << "Not Found" << endl; } } return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值