输入整数,正序输出
思路一:倒+倒=正
#include<stdio.h>
int main() {
int x;
scanf("%d", &x);
int dig;
int res = 0;
do {
dig = x % 10;
res = res * 10 + dig;
x /= 10;
} while (x > 0);
printf("%d\n", res); //倒序输出
x = res; //重新赋值,参与后面运算
int t = 0;
do {
dig = x % 10;
t = t * 10 + dig;
x /= 10;
} while (x > 0);
printf("%d", t); //倒+倒=正
return 0;
}
适用于整数中前、后无0情况
思路二:与对应位数最小值直接参与运算
#include<stdio.h>
int main() {
int x=3456; //假设输入的数是3456的四位数
int min = 1000; //以四位数最小值参与运算
int dig;
//scanf("%d", &x);
do {
dig = x / min;
x = x % min;
min /= 10;
printf("%d",dig);
} while (min > 0); //修改条件,使0参与运算
return 0;
}
只适用于给定位数的整数进行正序输出
思路三:先判断所输入的数为几位数,然后将该位数的最小值赋予变量,参加于思路二的运算中
#include<stdio.h>
#include<math.h>
int main() {
int x,y;
int n = 0;
scanf("%d", &x);
y = x; //保留初始化数值,参与下式运算
do {
n++;
x /= 10;
} while (x > 0); //得到输入的数字位数
int min = pow(10, n - 1); //位数所对应的最小值为10的位数-1次方
do {
int dig = y / min;
y = y % min;
min /= 10;
printf("%d ", dig);
} while (min > 0);
return 0;
}
二的进阶版,适用于所有情况.