大佬们我现在还是c语言小白,大一的时候修过C语言,可是到现在忘光了,有一个代码是整数转换的:
{ int x,y;
scanf("%d",&x); y=0;
while ( x ) { y*=10; y=y+(x%10); x/=10; }
printf("%d\n",y);
}
就是这个,运行这个后如果输入123会输出321,请问大佬们每一行代码的意思是什么,能详细讲解一下这个代码吗
主要是解释while(x)这个循环吧?
加入输入x=123
那么第一次循环,x>0,可以循环
y*=10,由于y为0,乘以10还是0。y = y+(x%10) = 0+3=3,x/=10就是x等于x/10=12。这时候y=3,x=12
再次循环 x=12满足循环条件,y*=10使得y=30,y=y+(x%10)=30+12%10 = 30+2 = 32,x/=10,使得x=12/10=1,这时候y=32,x=1
再次循环,x=1满足循环条件,y*10是得y=320,y=y+(x%10) = 320 + 1%10 = 321,x/=10使得x=1/10 = 0,这时候y=321,x=0
再次循环,x=0不满足循环条件。
最后y=321,完成从123的颠倒过程