这是一个关于反转整数的代码,while里面的原理是咋样的,以a=-380为例子,算了半天也没看明白,希望各位帮我看看,多谢
b=b*10+a%10;
a/=10;
a=-380
b=0
反复执行
b=b*10+a%10;//b=0*10+0=0
a/=10;//a=-38
b=b*10+a%10;//b=0*10-8=-8
a/=10;//a=-3
b=b*10+a%10;//b=-8*10-3=-83
a/=10;//a=0,结束循环
其实你自己断点跟一下,或者打个print,不就知道了
听别人讲固然省事,但是自己会调试才能对更多操作有较深的理解,你总不能每遇到个问题都跑来问是吧
最好将b=0初始化加上。加上后应该是:第一次b=010+380%10=0; a=380/10=38;第二次b=010+38%10=8;a=38/10=3;第三次b=8*10+3%10=83;a=3/10=0 所以b输出为83
修改如下,供参考:
#include <iostream>
using namespace std;
int main()
{
int a, b = 0; //修改,初始化b=0
cin >> a;
while (a) {
b = b * 10 + a % 10;
a /= 10;
cout << "b:" << b << " " << "a:" << a << endl;//输出b a 的值
}
cout << b;
return 0;
}