C语言把一个数字从最高位开始,把0去掉,知道出现第一个非0的数字或者小数点
时间: 2023-05-24 08:03:35 浏览: 155
C语言_位操作,如何判断某一位是1还是0
5星 · 资源好评率100%
A:可以使用字符串和循环来实现该功能。首先,将数字转换为字符串形式,然后循环遍历字符串,遇到第一个非零数字或小数点即停止循环并返回该位置。以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
double num = 0.0123456;
char str[20];
sprintf(str, "%.10f", num); // 将数字转换为字符串,保留10位小数
int i;
for (i = 0; str[i] != '\0'; i++) {
if (str[i] != '0' && str[i] != '.') {
break;
}
}
printf("第一个非零数字或小数点的位置是:%d", i + 1); // 字符串下标从0开始,因此要加1
return 0;
}
```
输出结果为:
```
第一个非零数字或小数点的位置是:2
```
即第二个字符为小数点。如果将数字改为1234.567即可测试第一个非零数字的位置。
阅读全文