数字到单词c ++

时间:2017-12-10 16:25:56

标签: c++ string numbers

这是一个用英文打印数字(数字)的程序 例1到"一个" 我用2串数组打印,用英文编号。 1比20。 10,20,30 ... 90的第2名。 第三个字符串为百 请帮我打印20之后的数字21,其中包括来自不同数组的2个字符串,并将它们作为一个函数返回。

#include <iostream>
#include <string.h>
using namespace std;
string convert(int x);
int main()
{
    int no;
    string no_in_eng;
    cout << "Enter a number\n";
    cin >> no;
    no_in_eng = convert(no);
    cout << no_in_eng << " Ruppess";
    return 0;
}
string convert(int x)
{  // array of string from 1 to 20
    string ones[] = { "One", "Two", "Three", "Four", "Five", "Six",
                      "Seven", "Eight", "Nine", "Ten",
                      "Eleven", "Twevle", "Thirteen", "Fourteen", "Fifteen",
                      "Sixteen", "Seventeen", "Eighteen", "Ninteen", "Twenty" };

    string hun = "Hundred";

//array of string for (20,30,40...90)
    string tens[] = { "Twenty", "Thirty", "Fourty", "Fifty"              ,
                      "Sixty", "Seventy", "Eighty", "Ninty" };

    {
        if (x <= 0)
            //if not used surprisingly 0 will print ninty
            return "zero or negative";

        else if (x < 21)
            return *(ones + x - 1);

        else if (x < 99)
        {
            //Need help with two digit number
            return 0;
        }
        else if (x < 999)
        {
            //need help with 3 digit number
            return 0;
        }
        else
            cout << "wrong number choice";
    }
}

1 个答案:

答案 0 :(得分:0)

当你写一个数字,比如3215,你自己,你不会去#34;它不到10?不,是不到一百?不...&#34 ;.
你去&#34;它超过1000?是的,成千上万是三个。有几百个?两...&#34;

在程序中反转你的逻辑:

  • 如果数字大于999,则打印数千,并在除以千分之后得到余数。
  • 如果余数大于99,则打印数百,并在除以100时得到余数。
  • 等等。

这是使用/%运算符的练习,所以就这样做。