想不使用字符串类型处理就将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;
}
我复制了你的代码,得到了不一样的结果。
请描述一下你使用的开发环境