C语言写一个简单的,从键盘中输入一个数字(可以包含小数点,其位数在60位以下,求其整数的有效位数,如输入 0123.456,返回值为整数有效位数为3)
时间: 2024-10-28 17:12:37 浏览: 16
为了计算一个包含小数点的数字的有效整数部分位数,你可以创建一个简单的C程序,通过遍历字符串并检查每个字符来确定整数部分的长度。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int countIntDigits(char str[]) {
int i = 0;
while (str[i] != '.') {
if (!isdigit(str[i])) break; // 如果遇到非数字字符,则退出循环
i++;
}
return i; // 返回到第一个小数点前的所有整数字符的索引位置加1(即整数的有效位数)
}
int main() {
char num[61]; // 存储用户输入,最多允许60位,包括小数点
printf("请输入一个不超过60位的数字: ");
fgets(num, sizeof(num), stdin); // 读取用户输入,fgets会自动添加换行符
// 移除最后的换行符
num[strcspn(num, "\n")] = '\0';
int numLength = strlen(num);
int intPartLength = countIntDigits(num); // 计算整数部分的有效位数
printf("输入数字的整数有效位数为:%d\n", intPartLength);
return 0;
}
```
在这个程序中,`countIntDigits` 函数负责找到小数点前的最后一个数字。`main`函数里,我们先读取用户的输入,然后调用`countIntDigits`得到整数部分的有效位数。
注意:这个程序假设用户输入不会超过60位,如果需要动态调整输入限制,可以根据实际需求修改数组大小。
阅读全文