该代码是为扭转输入十进制无论是负或正.如果十进制的值超过作为最大大小的整数在32位系统然后返回0.为什么我的代码是不工作...帮助我找到的bug .我已经附上的代码.
#include<iostream>
#include<stdlib.h>
#include<math.h>
using namespace std;
float reverseint(int x)
{
int digit[10];
int i = 0;
float revnum = 0;
//store digits of number x
while (x != 0)
{
digit[i] = x % 10;
x = x / 10;
i++;
}
i--;
//reversing number x
while (i >= 0)
{
int j = 0;
revnum = (digit[i] * pow(10, j)) + revnum;
j++;
i--;
}
return revnum;
}
int main()
{
int n;
cin >> n;
if (n < 0)
{
if (n < -pow(2, 31))
cout << 0 << endl;
cout << -reverseint(-n);
}
if (n > 0)
{
if (n > (pow(2, 31) - 1))
cout << 0 << endl;
cout << (reverseint(n)) << endl;
}
return 0;
}
1条答案
按热度按时间pw9qyyiw1#
您正在
reverseint
函数的每个while循环中初始化j
变量。