名前と電話番号を指定して、友達の名前をそれぞれの電話番号にマップする電話帳を作成します。次に、電話帳に問い合わせるための不明な数の名前が与えられます。照会された名前ごとに、電話帳の関連エントリを「name = phoneNumber」の形式で新しい行に出力します。名前のエントリが見つからない場合は、代わりに「見つかりません」と出力してください。
入力フォーマット:..。
電話帳エントリの行の後に、不明な数のクエリ行があります。各行(クエリ)には、検索する、、および
入力がなくなるまで行を読み続ける必要があります。
入力がなくなるまでループするにはどうすればよいですか?
また、誰かがこれがC ++でどのように可能であるかを教えてもらえますか?
これがPython3の私のコードです。
n = int(input())
names = {}
for foo in range(n):
entry = input().split(' ')
names[entry[0]] = entry[1]
while (1==1):
check = input()
if(names.get(check)!=None):
print(check + '=' + names.get(check))
else:
print('Not Found')
C ++コードは次のとおりです。
#include<iostream>
#include<map>
#include<string>
using namespace std;
int main(void)
{
map<string, string> phonebook;
int n;
cin >> n;
string key, num;
for(int i = 0; i < n; i++)
{
cin >> key >> num;
phonebook.insert(pair<string, string>(key, num));
}
while (1 == 1)
{
cin >> key;
if(phonebook.count(key) > 0)
cout << key << "=" << phonebook[key] << endl;
else
cout << "Not found" << endl;
}
}
入力がなくなるまでループするにはどうすればよいですか?
whileループの使用は適切です。エラーをキャッチして消音するには、次のtry-except
ブロックを使用できます。
n = int(input())
names = {}
for foo in range(n):
entry = input().split(' ')
names[entry[0]] = entry[1]
while True: # (1 == 1) == True
try:
check = input()
except EOFError: # catch the error
break # exit the loop
if(names.get(check)!=None):
print(check + '=' + names.get(check))
else:
print('Not Found')
また、誰かがこれがC ++でどのように可能であるかを教えてもらえますか?
うーん...変なリクエスト。私はあなたを指差してstd::getline
、std::map
彼らに話をさせます。:-)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加