c语言给一个不多余5位的正整数,要求如下:①求出它是几位数②分别输出每一位数字③按逆序输出各位数字
时间: 2024-12-20 16:25:08 浏览: 67
在C语言中,要实现这个功能,你可以编写一个函数来完成这个任务。首先,你需要确定输入数值的位数,然后逐位提取并输出,最后再逆序输出。以下是简单的步骤:
```c
#include <stdio.h>
#include <string.h>
// 函数用于获取数值的位数
int getDigitCount(int num) {
int count = 0;
while (num != 0) {
num /= 10; // 右移一位,去掉最低位
count++;
}
return count;
}
// 函数用于获取并输出每一位数字
void outputDigits(int num, int digits[]) {
for (int i = 0; i < digits[0]; i++) {
digits[i] = num % 10; // 取模得到当前位
printf("%d", digits[i]);
num /= 10; // 再次右移一位
}
printf("\n");
}
// 函数用于逆序输出各位数字
void reverseOutput(int digits[], int length) {
for (int i = 0; i < length / 2; i++) {
int temp = digits[i];
digits[i] = digits[length - 1];
digits[length - i - 1] = temp;
}
printf("逆序输出:");
for (int i = 0; i < length; i++) {
printf("%d", digits[i]);
}
printf("\n");
}
int main() {
int num, digits[10];
printf("请输入一个不超过5位的正整数:");
scanf("%d", &num);
int digit_count = getDigitCount(num);
if (digit_count > 5) {
printf("输入的数字超过5位!\n");
return 0;
}
digits[0] = digit_count;
// 获取每一位数字并存储
while (digit_count--) {
digits[digit_count] = num % 10;
num /= 10;
}
// 输出原始顺序和逆序
printf("原始顺序:");
outputDigits(num, digits);
reverseOutput(digits, digits[0]);
return 0;
}
```
在这个程序中,`getDigitCount`函数计算位数,`outputDigits`函数用于打印每一位,而`reverseOutput`函数则负责逆序输出。请注意,这个程序假设用户输入的是正整数,并且不超过5位。
阅读全文
相关推荐


















