0) { num /= 10; count++; } // 输出数字的位数 printf("该数字是%d位数 "," />

彼特文案-你身边的文案管家

彼特文案-你身边的文案管家

给一个不多于5位的正整数要求

59

```c

include

int main() {

int num, digit, count = 0;

printf("请输入一个不多于5位的正整数: ");

scanf("%d", &num);

// 计算数字的位数

while (num > 0) {

num /= 10;

count++;

}

// 输出数字的位数

printf("该数字是%d位数

", count);

// 输出每一位数字

printf("每一位数字分别是: ");

num = abs(num); // 取绝对值,因为负数也会被正确处理

while (num > 0) {

digit = num % 10;

printf("%d ", digit);

num /= 10;

}

printf("

");

// 逆序输出各位数字

printf("逆序输出各位数字: ");

num = abs(num); // 取绝对值,因为负数也会被正确处理

while (num > 0) {

digit = num % 10;

printf("%d", digit);

num /= 10;

}

printf("

");

return 0;

}

```

代码说明:

输入处理:

程序首先提示用户输入一个不多于5位的正整数,并使用`scanf`函数读取该整数。

计算位数:

通过一个`while`循环计算输入整数的位数。

输出位数:

打印出输入整数的位数。

输出每一位数字:

通过另一个`while`循环,从个位到最高位依次输出每一位数字。

逆序输出:

再次通过一个`while`循环,从最高位到个位逆序输出每一位数字。

注意事项:

程序中使用了`abs`函数来处理负数的情况,确保无论输入是正数还是负数,都能正确计算位数和逆序输出。

程序假设用户输入的是一个有效的整数,未进行详细的输入验证。在实际应用中,可能需要添加更多的错误处理机制。