求问为什么在循环结束后返回的值少了1呢?
想不使用字符串类型处理就将c++中一个字符串翻转过来,但是发现最后的结果总是会莫名其妙的不对,于是使用输出语句排查问题,但是还是没有解决到底是哪里导致数值出现了变化,求大大么指点,下面附上代码与运行截图
int main(){ int x;
cout << "cin the number:"<<endl;
cin >> x;
int number[15];
bool isfushu = false;
if (x<0){
x= x*(-1);
isfushu = true;
}
int i=0;
while (x>=1){
number[i] = x%10;
x= x/10;
i++;
}
long othernumber = 0;
for(int i1=i-1; i1>=0; i1--){
cout<<i1<<endl;
cout<<number[i1]<<"*"<<pow(10,i-1-i1)<<"+"<<othernumber;
othernumber = othernumber + number[i1]*pow(10.0,(i-1-i1));
cout<<"=="<<othernumber<<endl;
}
if (othernumber > INT_MAX )
cout << "0" <<endl;
else if (isfushu == true)
cout<<othernumber*(-1)<<endl;
else
cout<<othernumber<<endl;
}
回答:
我复制了你的代码,得到了不一样的结果。
cin the number:567
2
5*1+0==5
1
6*10+5==65
0
7*100+65==765
765
请描述一下你使用的开发环境
回答:
pow返回是浮点被强转成整数,后面的小数位被砍掉了.
回答:
aaa@ubuntu:~/Desktop/test$ ./a.outcin the number:
567
2
5*1+0==5
1
6*10+5==65
0
7*100+65==765
765
你的代码直接复制到我的64位Ubuntu下编译运行,结果是没问题的
回答:
代码存在问题啊
以上是 求问为什么在循环结束后返回的值少了1呢? 的全部内容, 来源链接: utcz.com/p/191754.html