int main() {
int n;
scanf("%d", &n);
int temp = n;
//1.求位数
int count = 0;
/* 这样写有个问题,如果输入0,位数也输出0
while (n != 0) {
n /= 10;
count++;
}
*/
do {
count++;
n /= 10;
} while (n != 0);
printf("%d\n", count);
//2.从高位开始,输出每一位
//12345 / 10000 => 1 12345 %= 10000 => 2345
//2345 /1000 => 2 2345 %= 1000 => 345
//...
//5 5/1 =>5 5 %= 1 =>0 直到n为0
int power =pow(10, count - 1); //pow返回double类型,强转一下也可以 int power=(int)pow(10,count-1);
n = temp;
/* 解决负数问题 这个根据实际情况
if (n < 0) {
printf("-");
n = -n;
}
*/
while (n != 0) {
printf("%d ", (n / power)); //除法返回double类型, 强转下也可以 printf("%d ", (int)(n / power));
n %= power;
power /= 10; //每次减少一个0
}
printf("\n");
//3.逆序输出每一位数
//12345 -> 12345%10 得个位 12345/=10 => 1234
//...
//1 ->1%10 1/=10 => 0
while (temp != 0) {
printf("%d ", temp % 10);
temp /= 10;
}
return 0;
}
输入一个整数,要求(1)求出它是几位数;(2)分别输出每一位数字.例如123,输出123;(3)按逆序输出各位数字,例如原数为 321,应输出 123
于 2024-02-28 12:35:52 首次发布