c语言程序,给出一个不多于 4 位的正整数,求它是几位数。
时间: 2024-11-20 07:34:20 浏览: 22
在C语言中,要计算一个正整数的位数,可以先将这个数转换为字符串,然后再遍历这个字符串来确定长度,因为字符串的长度即为数字的位数。以下是一个简单的函数实现:
```c
#include <stdio.h>
#include <string.h> // 包含strlen函数
// 函数定义,返回给定正整数的位数
int getDigitCount(int num) {
// 使用itoa函数将数字转为字符串,注意此函数不属于标准C库,需要外部链接或其他库支持
char str[5]; // 假设最多有4位数,所以这里留了5个字符的空间
itoa(num, str, 10); // 十进制表示
return strlen(str); // 字符串长度即为数字的位数
}
int main() {
int num;
printf("请输入一个不超过4位的正整数:");
scanf("%d", &num);
if (num <= INT_MAX && num >= 0) {
int digit_count = getDigitCount(num);
printf("该数有%d位。\n", digit_count);
} else {
printf("输入的不是一个有效的4位正整数。\n");
}
return 0;
}
```
注意:上面代码中使用到了`itoa`函数,这是一个非标准的函数,实际编写时需要确认你使用的编译环境是否有提供或需要额外链接相应的库。
阅读全文