题目
输入一个正整数,输出一个逆序数。
编程思路分析
- 输入一个数字。
- 运算。
- 输出该数字的逆序数。
重点运算思路
- 我们以12345为例。但是实际情况中我们不知道有多少位数字。
- 首先,取出12345最右边的数字(5)并存放到一个变量中(digital)。操作: digital = x%10;
- 将取到的数加到逆序数的变量(ret)中。由于我们不知道事先有多少位数,所以每增加一个数字之前,对原有数字升一位。操作: ret = ret*10 + digital;
- 12345去掉最右边的数字,此时还剩1234。操作:x = x/10;
- 步骤2-4套上循环(while),就能完成x的逆序,54321.
- 注意:如果要输出007等0为开头的逆序数,则我们直接在循环中printf("%d", digital);就可以得到0开头的数字。
实现代码如下
#include <stdio.h>
int main(){
int x = 0; //x是要被逆序的正整数。
scanf("%d", &x);
int a = 0;
a = x;
int digital = 0; //digital是x每取一位数的存放点。
int ret = 0; //ret是逆序的数。
while(x > 0){
digital = x % 10;
printf("%d", digital);//该语句是为了能够输出0开头的数字。
ret = ret*10 + digital;
//printf("x=%d, ret=%d, digital=%d\n", x, ret, digital);
x = x/10;
}
printf("你好,你输入的数字为%d, 逆序以后的数字为%d。\n", a, ret);
return 0;
}