首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

帮忙见见下面的代码!

2014-01-12 
帮忙看看下面的代码!!!我是想输出一个整数的逆序数,结果都是0,怎么回事呢?#includeiostream#includecma

帮忙看看下面的代码!!!
我是想输出一个整数的逆序数,结果都是0,怎么回事呢?

#include<iostream>
#include<cmath>
using namespace std;

void reverse ( int );

int main()
{
int number;

cout << "Enter one integer number : ";
cin >> number;

cout << reverse ( number ) << endl;
return 0;
}

int reverse ( int number )
{
int number1;
int n = 0;
int reversenumber = 0;
double m = 10;

for ( int i = 10; ; )
{
n++;
number = number / i;

if ( number == 0 )
break;
}

for ( int k = n; k > 0; k-- )
{
number1 = number % 10;
number = number / 10;

reversenumber = reversenumber + number1 * pow ( m, k-1 ) ;
}

cout << reversenumber;
}

[解决办法]

引用:
for ( int i = 10; ; )
{
n++;
number = number / i;

if ( number == 0 )
break;
}

}

number在这里就变成0了,你需要临时变量来接收number的值再操作就可以了。
[解决办法]
这个问题完全就可以在一个循环里做阿

int i = 0;
while(number>0)
{
    number1 = number % 10;
    number = number / 10;
    reversenumber = reversenumber*10 + number1;
    i++;
}

[解决办法]
与其优化不如重构
int reverse ( int number )
{
int reversenum = 0;
while(number!=0)
{
reversenum = reversenum*10 + number%10;
number /= 10;
}
return reversenum;
}

热点排行