输入一个正整数,要求以相反的顺序输出该数。用递归方法实现。 **输入格式要求:"%d" 提示信息:"Enter number:" **输出格式要求:"%d" 程序运行示例如下: Enter number:35567899 99876553
#include<stdio.h>
int main()
{
printf("Enter number:");
int x = 0;
scanf("%d", &x);
int sum = 0;//x相反顺序
while (x != 0)当最后一位被取走后,x=0,此时终止循环
{
sum = sum * 10 + x % 10;//x%10表示每次取x的最后一位
//取走最后一位后,被取走的那个数需要逐步上升到最高位,故每次要乘10
x /= 10;//x的最后一位被取走,需要去掉最后一位
}
printf("%d", sum);
return 0;
}
如果sum=sum*10+x%10不好理解可以换成以下
while(x!=0)
{
sum*=10//每次添加数前,需要将已添加的数上移1位
sum+=x%10
x/=10;
}
比如输入12345,sum*=10=0,sum+=12345%10=5,x/=10=1234
上移一位,sum=50,sum+x%10=54,如此往复就得到最终结果了