在C++中将数字转换为英文(1-99)
问题描述:
试图将数字从1-99转换为英文,但我真的不知道我在这里错过了什么。每当我输入一个像20这样的数字时,它就不会像输出20那样输出数字。任何帮助,将不胜感激! :)在C++中将数字转换为英文(1-99)
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
int main()
{
cout << "In this program we will convert integers to English" << endl;
int Number, leftDigit, rightDigit, yes;
yes = 1;
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 "};
do{
cout << "Enter any integer value: " << endl;
cin >> Number;
if (Number <= 0 || Number >= 100)
{
cout << "The number is not between 1 and 99" << endl;
}
else (Number >= 1 && Number <= 19)
{
cout << "The number you have entered is: " << ones[Number] << endl;
}
else (Number >= 20 && Number <= 99)
{
leftDigit = Number/10;
rightDigit = Number % 10;
cout << "The number you have entered is: " << tens[leftDigit - 2 ] << " " << ones[rightDigit] << endl;
}
} while (yes == 1);
return 0;
}
答
你有两个问题在你的代码:
首先,你需要把你的参数之间的逗号string ones[]
和string tens[]
这样的:
string tens[] = { " Twenty ",
" Thirty ",
" Fourty ",
" Fifty ",
" Sixty ",
" Seventy ",
" Eighty ",
" Ninety " };
二 ,您需要在每个else
中添加if
,如下所示:
// ..
else if (Number >= 1 && Number <= 19)
{
cout << "The number you have entered is: " << ones[Number] << endl;
}
// ..
结果修复这两个问题后,你的代码:
如果输入'20',这是什么输出? – Tas
这段代码不会编译。你需要把'else if(..){..}'。 –
我添加了如果两个其他的和它输出所有的英文数字字符串十[] – Haris