因此,我正在研究的代码(针对学校)是假设用户使用一个给定的整数并将其打印为字符串(示例输入:154 |输出:一五四)。
目前我几乎已经解决了,除了它倒退了!需要弄清楚如何正确打印(我的打印机会打印出“四五一”)。
#include <iostream>
#include <string>
using namespace std;
void toString(int x) {
while (x > 0)
{
int digit = x % 10;
x /= 10;
switch (digit) {
case 1:
cout << "One ";
break;
case 2:
cout << "Two ";
break;
case 3:
cout << "Three ";
break;
case 4:
cout << "Four ";
break;
case 5:
cout << "Five ";
break;
case 6:
cout << "Six ";
break;
case 7:
cout << "Seven ";
break;
case 8:
cout << "Eight ";
break;
case 9:
cout << "Nine ";
break;
case 0:
cout << "Zero ";
break;
}
}
}
int main()
{
int num;
cout << "Please enter a positive number" << endl;
cin >> num;
while (num > 0)
{
toString(num);
cout << "\nPlease enter a positive number" << endl;
cin >> num;
}
cout << "You entered a number less than or equal to zero"
<< endl << "the program was terminated" << endl;
system("pause");
return 0;
}
基本上有三种方法可以解决您的问题:
而不是打印单词,而是将它们放在字符串中,然后反转字符串中的单词。
反转循环前的数字。
从数字的另一端开始,通过计算数字的位数,(以的示例为例154
)以百位数开头,然后是十位数,最后是十位数。
最简单的是第一种选择的变体,您无需将包含单词的字符串创建然后反转单词,而是将单词放入容器(例如std::vector
),然后反转容器或从后到前进行迭代。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句