输入一个整数,将该整数逆序输出。n=n*10+num%10;什么意思呀?

来源:百度知道 编辑:UC知道 时间:2024/05/12 00:54:18
#include<stdio.h>
main()
{
long n=0,num;
printf("Enter an integer:");
scanf("%ld",&num);
do
{n=n*10+num%10;
num=num/10;
}while(num!=0);
printf("ld\n",n);
}
谢谢了!

n*10实现移位,num%10则取出当前十进制位数的值。
举个例子,num=1234,
第一步 n=0+1234%10=0+4=4, 1234/10=123;
第二步 n*10=40,实现将4移到十位上,num%10=123%10=3,取出原数的十位数;
n=n*10+num%3=43, num/10=123/10=12
第三步 n*10=430,将4和3左移一位, num%10=12%10=2,取出原数的百位数;
n=n*10+num%10=432, num/10=12/10=1
第四步 n*10=4320,将4和3、2左移一位, num%10=1%10=1,取出原数的千位数;
n=n*10+num%10=4321, num/10=1/10=0,结束
遇到步明白的句子可以调试一下,逐步跟踪变量的值,就会明白了

这个公式负责,把整数到转过来
%是取余函数
n负责把数按新的位置累加