黑马程序员技术交流社区

标题: 编程题求解,求大神解析 [打印本页]

作者: qiang0901    时间: 2015-4-27 09:25
标题: 编程题求解,求大神解析
首先题目是下面的内容:

以下程序把一个整数转换成二进制数,所得二进制数的每一位放在一维数组中,输出此二进制数。注意:二进制数的最低位在数组的第一个元素中。
#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】的地方不懂,不知道写啥
作者: 陈凡1993    时间: 2015-4-28 15:26
因为二进制的最低位在数组的第一个元素中(从代码分析也可得知二进制数是倒着保存在数组中的)
作者: 陈凡1993    时间: 2015-4-28 15:31
那我们想得到二进制数就应该从最高位一直输出到最低位,也就是从b[k]一直输到b[0],所以【3】处应该写i>=0或者写i>-1。不好意思,刚一按回车给提交了,希望可以帮到你
作者: qiang0901    时间: 2015-4-28 16:05
陈凡1993 发表于 2015-4-28 15:31
那我们想得到二进制数就应该从最高位一直输出到最低位,也就是从b[k]一直输到b[0],所以【3】处应该写i>=0 ...

灰常感谢:victory:明白了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2