【发布时间】:2016-04-01 20:05:49
【问题描述】:
我正在做一些递归练习,我需要编写一个反转整数输入的程序
输入示例:cin >> 12345;输出应该是 54321
但如果该整数为负数,则只需将负号附加到第一个数字。
输入示例:cin >> -1234;输出-4321
我很难让我的程序适应负数。如果我运行,我设置它的方式
测试示例:12345 我得到正确的输出 54321
所以我的递归和基础是成功的。但是如果我跑负我会得到 p>
测试示例:-12345 我得到这个是因为我不明白 -5-4-3-2 1
#include<iostream>
using namespace std;
void reverse(int);
int main()
{
int num;
cout << "Input a number : ";
cin >> num;
reverse(num);
return 0;
}
void reverse(int in)
{
bool negative = false;
if (in < 0)
{
in = 0 - in;
negative = true;
}
if (in / 10 == 0)
cout << in % 10;
else{
if (negative == true)
in = 0 - in;
cout << in % 10;
reverse(in / 10);
}
}
【问题讨论】:
-
if (in
-
你为什么不直接打印一个
-然后用-in正常继续? -
cin >> 12345什么? -
@JoachimPileborg:我猜是在
cin >>提示符下输入12345的控制台记录。该代码块并没有伪装成 C++ 代码。 -
保持数字为字符序列。反转字符串比反转数字更简单。