0

想不使用字符串类型处理就将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;

 }

查看全部 4 个回答

0

代码存在问题啊

该答案已被忽略,原因:不符合答题规范,内容不是答案,可用评论、投票替代