c语言编程

Description题目描述给你一个非负整数n(0≤n≤232-1),求其二进制里面最长连续1数码的长度。比如,7的二进制为111,所以最长连续1数码的长度为3;13的... Description

题目描述

给你一个非负整数n(0≤n≤232-1),求其二进制里面最长连续1数码的长度。
比如,7的二进制为111,所以最长连续1数码的长度为3;13的二进制为1101,所以最长连续1数码的长度为2.

输入

第一行是一个整数K(K≤20000),表示样例的个数; 以后每行一个整数n。

输出

每行输出一个样例的结果。

样例输入

2
7
13
展开
 我来答
旷野行风
2015-11-26 · TA获得超过366个赞
知道小有建树答主
回答量:302
采纳率:33%
帮助的人:230万
展开全部
#include<stdio.h>
int main(void)
{
    int K,a[20000];
    int i,j,tmp,len;
    if(scanf("%d",&K)<1)
    {
        printf("scanf error\n");
        return -1;
    }
    if(K>20000)
    {
        printf("K<=20000\n");
        return -1;
    }
    for(i=0;i<K;i++)
        if(scanf("%d",a+i)<1)
        {
            printf("scanf error\n");
            return -1;
        }
        else if(a[i]>231||a[i]<0)
        {
            printf("0<=n<=231\n");
            return -1;
        }
    for(i=0;i<K;i++)
    {
        tmp=0;
        len=0;
        for(j=1;j<=128;j*=2)
            if(a[i]&j)
            {
                tmp++;
            }
            else
            {
                if(len<tmp)
                {
                    len=tmp;
                }
                tmp=0;
            }
        if(len<tmp)
            len=tmp;
        printf("len=%d\n",len);
    }
    return 0;
}
更多追问追答
追问
这个程序运行没结果#include
#include
int Max(int a,int b)
{
if(a<b)
return b;
else
return a;
}
int main()
{
int N,i,j,m;
unsigned int n;
int a[50]={0},count[34]={0},sum=0,h,k;
scanf
追答
???
代码没贴完怎么回答
year医海无边
2017-01-14 · TA获得超过1.5万个赞
知道小有建树答主
回答量:9169
采纳率:66%
帮助的人:1112万
展开全部
s是字符指针数组。 对应4个字符串。
循环中 i=3 2 1 0
对于不同的i,j有不同取值
3: 第一次判断就不成立, 直接退出。 不做操作
2: j=3
1: j=3 2
0:j=3 2 1
输出的是s[i]+j
也就是 从s[i]字符串的第j个字符开始输出
所以
输出是
while
ak
eak
tinue
ntinue
ontinue
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式