njustyf 2016-06-01 13:45 采纳率: 16.7%
浏览 1302

数组问题求助啊!!!!!!!!?

怎样将一个数组分解为几个2的幂的数组~~~~~~~~~~~~~~~~

  • 写回答

2条回答 默认 最新

  • 傻傻杰 2016-06-01 14:34
    关注

    #include
    int seperate(unsigned n , int value[]);
    int main()
    {
    unsigned a;
    int i,n;
    int value[sizeof(unsigned)*8];

    printf("Please input the integer:\n");
    scanf("%u",&a);
    n=seperate(a,value);
    printf("%d=%d",a,value[0]);
    for(i=1;i<n;++i)
    printf("+%d",value[i]);
    putchar('\n');
    system("PAUSE");
    return 0;
    }

    int seperate(unsigned n , int value[])/*该函数将n 分解为2的幂次的和,将非零结
    果存在数组value中,并返回非0数的个数*/
    {
    int i,j=0,y;
    int temp[sizeof(unsigned)*8];

    for(i=0;i {
    y=n;
    y>>=1+i;
    y<<=1+i;
    temp[i]=n&(~y);
    n=y;
    }
    for(i=0;i<sizeof(unsigned)*8;++i)
    {
    if(temp[i]==0)
    ;
    else
    value[j++]=temp[i];
    }

    return j;
    }

    评论

报告相同问题?

悬赏问题

  • ¥15 求网页搭建平台会的联系我
  • ¥15 尼康光电绝对值编码器(相关搜索:绝对值|编码器)
  • ¥20 INCA标定工具ER亮红灯
  • ¥15 hive on spark
  • ¥15 星穹铁道中的ai自动战斗逻辑
  • ¥15 国产浪潮电脑跳转个别网页有问题
  • ¥15 SimpleHook 一下android fake模块的VIP日期
  • ¥15 如何在VBA中利用word的错词提示功能识别word文本中的错别字并标注
  • ¥15 jupyter notebook无法识别的空格,如何解决?(语言-python)
  • ¥15 自动回复评论的小插件