【問題】
キーボードから整数の値を入力すると、その値が漢数字で出力されるプログラムを作りなさい。
このとき、用いられるのは、1から9に対応するのが、一から九までの漢字で、ゼロは、〇と表示するようにしなさい。
また、この数字と漢字の対応は、mapを用いて作りなさい。また、結果を出力する際には、3桁ごとに「,」(コンマ)を出力すること。
※ヒント:入力は、数値としてではなく、文字列として受付、その中身が妥当かどうか調べるとよい。
【期待される実行結果】(整数の値が入力された場合)
整数の値を入力してください:1198000 ← コンソールから整数の値を入力
変換結果:一,一九八,○○○
【期待される実行結果】(整数以外の値が入力された場合)
整数の値を入力してください:hello
整数の値を入力してください。
【質問内容】
1.整数以外を入力すると、「整数の値を入力してください。」だけ表示されるようにしたいです。
2.コンマの出力方法が分かりませんでした。教えてほしいです。
【作成したコード】
#include <iostream> #include <string> #include <map> using namespace std; int main() { map <string, string> score; // map のデータ構造を用意する。 cout << "整数の値を入力してください:" ; string names[] = { "0","1","2","3","4","5","6","7","8","9" }; score[names[0]] = "〇"; score[names[1]] = "一"; score[names[2]] = "二"; score[names[3]] = "三"; score[names[4]] = "四"; score[names[5]] = "五"; score[names[6]] = "六"; score[names[7]] = "七"; score[names[8]] = "八"; score[names[9]] = "九"; char num[20]; int i = 0,j = 0; cin >> num; cout << "変換結果:"; while (num[i] != '\0') { names[i] = num[i]; if (names[i] == "0") { cout << score[names[i]]; } else if (names[i] == "1") { cout << score[names[i]]; } else if (names[i] == "2") { cout << score[names[i]]; } else if (names[i] == "3") { cout << score[names[i]]; } else if (names[i] == "4") { cout << score[names[i]]; } else if (names[i] == "5") { cout << score[names[i]]; } else if (names[i] == "6") { cout << score[names[i]]; } else if (names[i] == "7") { cout << score[names[i]]; } else if (names[i] == "8") { cout << score[names[i]]; } else if (names[i] == "9") { cout << score[names[i]]; } else { cout << "整数の値を入力してください。" << endl; return 0; } i++; } return 0; }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/12 00:51
2020/04/12 11:14
2020/04/13 13:58