永发信息网

c语言 报出一个数 输出该数二进制最多有多少个1连续

答案:1  悬赏:30  手机版
解决时间 2021-11-08 10:09
  • 提问者网友:我是女神我骄傲
  • 2021-11-08 02:09
c语言 报出一个数 输出该数二进制最多有多少个1连续
最佳答案
  • 五星知识达人网友:蓝房子
  • 2021-11-08 02:34
#include
int main()
{
int n;  
while(scanf("%d",&n)!=EOF)

if(n==0) 
break;
int i=0,two;
int a[32],m=0,max=0,j;
while(n!=0)
{
two=n%2;
n=n/2;
a[i]=two;
i++;
}
j=i; //不用在while中赋值,循环结束后赋值一次就可以了。
while(j>0)
{
printf("%d",a[--j]);
}
printf("
");

for(i--;i>=0;i--) //首先i要先减一个,因为i是最后一个数的后一位
{
if(a[i]==1)
m++;
else
{
max=m>max?m:max;
m=0;
}
}
max=m>max?m:max; //这里要加一个检查,防止全是1或是尾部有多个1的连续数没有在for中进行最大个数检查。
printf("%d
",max);
}
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯