C语言中判断整数的位数。 输入 一个不多于5位的正整数。 输出 如果不是符合要求的正整数,输出“Invalid input”;否则输出它是几位数,并逆序打印出各位数字。
时间: 2024-10-10 14:03:55 浏览: 61
在C语言中,你可以通过循环和模运算(%)来判断一个整数的位数。首先需要检查输入是否是非负整数并且不超过5位。以下是简单的步骤:
1. 初始化计数器 `count` 为0,用于存储位数。
2. 使用 `while` 循环,条件是输入数大于0且 `count` 小于5:
- 对输入数取模(`input % 10`),得到当前的最后一位数字。
- 如果输入数除以10的结果大于0,说明还有下一位,将 `count` 加1。
- 更新输入数,去除最低的一位(`input /= 10`)。
3. 循环结束后,如果 `count` 等于5,那么输入的是一个5位数,反之则不是。
下面是一个简单的函数实现这个功能:
```c
#include <stdio.h>
void printBits(int num) {
if (num <= 0 || num >= pow(10, 6)) { // 检查输入范围
printf("Invalid input\n");
return;
}
int count = 0;
while (num > 0) {
printf("%d", num % 10);
num /= 10;
count++;
}
printf("\n%d digits\n", count); // 输出位数并换行
}
int main() {
int input;
printf("Enter a positive integer with no more than 5 digits: ");
scanf("%d", &input);
printBits(input);
return 0;
}
```
阅读全文