数値をテキストに変換する C++ プログラムを書いています。
私は2つの問題を抱えています(編集:今は1つだけ):
最初の問題は、プログラムが 1 ~ 19 の正しい数字のみを書き出すことです。例として 34 を書いたときのように、20 ~ 99 のすべての数字を書き出すと、得られる答えは 30 であり、本来あるべき 34 ではありません。30 を超えるとエラーが発生し、プログラムがシャットダウンします。【不具合修正】
2 つ目の問題は、99 だけでなく 0 ~ 999 の数字を書き込めたらいいのに、その方法がわからないことです。
#include <iostream> #include <string> using namespace std; int main() { int num, Ldight, Rdight; string ones[] = {"zero", "one", "two", "three", "four", "five","six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"}; string tens[] = {"twenty","thirty","fourty","fifty", "sixty","seventy","eighty", "ninety"}; cout << "Pick a number between 1-99: "; cin >> num; if(num <= 0) { cout << "ERROR!" << endl; } else if (num >= 0 && num <= 19) { cout << "Your number is: " << ones[Rdight] ; } else if (num >=20 && num <=99) { Rdight = num % 10; Ldight = num / 10; cout << "Your number is: " << tens[Ldight - 2] << ones[Rdight]; } return 0; }