C语言编写程序,帮他找到最长连续0的长度,输入一个十进制数
时间: 2023-06-23 07:10:15 浏览: 90
以下是一个 C 语言程序,可以实现输入一个十进制数,输出其二进制表示中最长连续 0 的长度。
```c
#include <stdio.h>
int main() {
int num;
int count = 0;
int maxCount = 0;
printf("请输入一个十进制数:");
scanf("%d", &num);
while (num > 0) {
if (num % 2 == 0) {
count++;
if (count > maxCount) {
maxCount = count;
}
} else {
count = 0;
}
num /= 2;
}
printf("最长连续0的长度为:%d\n", maxCount);
return 0;
}
```
程序的思路是将输入的十进制数转换成二进制数,然后遍历二进制数中的每一位,统计连续 0 的个数并更新最大值。最终输出最大连续 0 的长度。
相关问题
C语言编写程序,帮他找到最长连续0的长度,输入一个十进制数,统计十进制里面最长0的个数
以下是一个使用 C 语言编写的程序,可以输入一个十进制数,找到其中最长连续 0 的长度:
```c
#include <stdio.h>
int main() {
int num, maxLen = 0, curLen = 0;
printf("请输入一个十进制数:");
scanf("%d", &num);
while (num > 0) {
if (num % 2 == 0) { // 当前位为0
curLen++;
} else { // 当前位为1
if (curLen > maxLen) {
maxLen = curLen;
}
curLen = 0;
}
num /= 2; // 继续处理下一位
}
if (curLen > maxLen) { // 处理最后一段连续的0
maxLen = curLen;
}
printf("最长连续0的长度为:%d\n", maxLen);
return 0;
}
```
该程序采用二进制转换的方法,逐位判断输入的十进制数的每一位是否为 0,如果是,则计数器加 1,否则将当前连续 0 的长度与之前的最大长度比较并更新。最后输出最长连续 0 的长度即可。
阅读全文