2016-07-24 269 views
0

试图将数字从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; 
} 
+0

如果输入'20',这是什么输出? – Tas

+2

这段代码不会编译。你需要把'else if(..){..}'。 –

+0

我添加了如果两个其他的和它输出所有的英文数字字符串十[] – Haris

回答

4

你有两个问题在你的代码:

首先,你需要把你的参数之间的逗号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; 
       } 
// .. 

结果修复这两个问题后,你的代码:

enter image description here

+0

太棒了!这解决了它。谢谢FirstStep :) – Haris

+0

很高兴我们能够帮助:) –

+1

@哈里斯你怎么那么去'每当我输入一个像20这样的数字,它不会输出20像它应该。如果你不能编译程序,你永远无法输入数字“20”。 – Steve