A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qiang0901 中级黑马   /  2015-4-27 09:25  /  1987 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

首先题目是下面的内容:

以下程序把一个整数转换成二进制数,所得二进制数的每一位放在一维数组中,输出此二进制数。注意:二进制数的最低位在数组的第一个元素中。
#include<stdio.h>
main()
{
    int  b[16],x,k,r,i;
    printf("please  input  binary   num  to  x");   scanf("%d",&x);
    printf("%d\n",x);
    k=-1;
    do
    {r= x%2 【1】 ;
        b[++k]=r;
        x/= 2 【2】 ;
    }
    while(x>=1);
    for(i=k; 【3】  ;i--)
        printf("%d",b[i]);  printf("\n");
}
疑问:【1】【2】这两个地方我都明白都写出来了,就是【3】的地方不懂,不知道写啥

3 个回复

正序浏览
陈凡1993 发表于 2015-4-28 15:31
那我们想得到二进制数就应该从最高位一直输出到最低位,也就是从b[k]一直输到b[0],所以【3】处应该写i>=0 ...

灰常感谢:victory:明白了
回复 使用道具 举报
那我们想得到二进制数就应该从最高位一直输出到最低位,也就是从b[k]一直输到b[0],所以【3】处应该写i>=0或者写i>-1。不好意思,刚一按回车给提交了,希望可以帮到你
回复 使用道具 举报
因为二进制的最低位在数组的第一个元素中(从代码分析也可得知二进制数是倒着保存在数组中的)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马