使用else

时间:2018-10-29 12:07:16

标签: c++ numbers display word

我用c ++编写了一个程序,可以将数字显示为单词。该程序适用于0-999之间的数字,但不适用于999以上的数字。对于999以上的数字,输出错误。我不知道我必须在哪里进行一些更改才能使此代码起作用。我已经用dev c ++编写了该程序,并且我是使用c ++语言的初学者。

   //This program converts number into words between 0-99999
    #include<iostream>
    using namespace std;
    main()
    {
        long int number,unit,ten,hundred,thousand,ten_thousand;
        cout<<"Please enter any number between 0-99999: ";
        cin>>number;

        ten_thousand=number/10000;
        number=number%10000;

        thousand=number/1000;
        number=number%1000;

        hundred=number/100;
        number=number%100;

        ten=number/10;
        number=number%10;

        unit=number;

        if(number<0 || number>99999)
        {
            cout<<"Number is out of range"; return 0;
        }
        if(hundred>=1 && hundred <=9)
            {
            if(hundred==1) cout<<"one hundred";
            if(hundred==2) cout<<"two hundred";
            if(hundred==3) cout<<"three hundred";
            if(hundred==4) cout<<"four hundred";
            if(hundred==5) cout<<"five hundred";
            if(hundred==6) cout<<"six hundred";
            if(hundred==7) cout<<"seven hundred";
            if(hundred==8) cout<<"eight hundred";
            if(hundred==9) cout<<"nine hundred";
            }
        if(thousand>=1 && thousand <=9)
            {
            if(thousand==1) cout<<"one thousand";
            if(thousand==2) cout<<"one thousand";
            if(thousand==3) cout<<"one thousand";
            if(thousand==4) cout<<"one thousand";
            if(thousand==5) cout<<"one thousand";
            if(thousand==6) cout<<"one thousand";
            if(thousand==7) cout<<"one thousand";
            if(thousand==8) cout<<"one thousand";
            if(thousand==9) cout<<"one thousand";
            }
        if(ten_thousand >=1 && ten_thousand <=9)
            {
            if(ten_thousand==1) cout<<"one thousand";
            if(ten_thousand==2) cout<<"two thousand";
            if(ten_thousand==3) cout<<"three thousand";
            if(ten_thousand==4) cout<<"four thousand";
            if(ten_thousand==5) cout<<"five thousand";
            if(ten_thousand==6) cout<<"six thousand";
            if(ten_thousand==7) cout<<"seven thousand";
            if(ten_thousand==8) cout<<"eight thousand";
            if(ten_thousand==9) cout<<"nine thousand";
            }
        if(ten == 1)
        {
            if(number==10) cout<<"ten"; 
            if(number==11) cout<<"eleven"; 
            if(number==12) cout<<"twelve";
            if(number==13) cout<<"thirteen"; 
            if(number==14) cout<<"fourteen";
            if(number==15) cout<<"fifteen";
            if(number==16) cout<<"sixteen";
            if(number==17) cout<<"seventeen";
            if(number==18) cout<<"eighteen";
            if(number==19) cout<<"ninteen";
        }
        else {   
            if(ten==2) cout<<" twenty";
            if(ten==3) cout<<" thirty";
            if(ten==4) cout<<" fourty";
            if(ten==5) cout<<" fifty";
            if(ten==6) cout<<" sixty";
            if(ten==7) cout<<" seventy";
            if(ten==8) cout<<" eighty";
            if(ten==9) cout<<" ninty";

            if(unit==0 && ten ==0) cout<<" zero";
            if(unit==1) cout<<" one";
            if(unit==2) cout<<" two";
            if(unit==3) cout<<" three";
            if(unit==4) cout<<" four";
            if(unit==5) cout<<" five";
            if(unit==6) cout<<" six";
            if(unit==7) cout<<" seven";
            if(unit==8) cout<<" eight";
            if(unit==9) cout<<" nine";
        }
    }

输出:-

Please enter any number between 0-99999: 54587
five hundredone thousandfive thousand eighty seven

1 个答案:

答案 0 :(得分:-1)

您的代码中有

if(thousand>=1 && thousand <=9)
    {
    if(thousand==1) cout<<"one thousand";
    if(thousand==2) cout<<"one thousand";
    if(thousand==3) cout<<"one thousand";
    if(thousand==4) cout<<"one thousand";
    if(thousand==5) cout<<"one thousand";
    if(thousand==6) cout<<"one thousand";
    if(thousand==7) cout<<"one thousand";
    if(thousand==8) cout<<"one thousand";
    if(thousand==9) cout<<"one thousand";
    }

如您所见,您将为thousand的所有值输出相同的字符串。更改为

if(thousand>=1 && thousand <=9)
    {
    if(thousand==1) cout<<"one thousand";
    if(thousand==2) cout<<"two thousand";
    if(thousand==3) cout<<"three thousand";
    if(thousand==4) cout<<"four thousand";
    if(thousand==5) cout<<"five thousand";
    if(thousand==6) cout<<"six thousand";
    if(thousand==7) cout<<"seven thousand";
    if(thousand==8) cout<<"eight thousand";
    if(thousand==9) cout<<"nine thousand";
    }