黑马程序员技术交流社区
标题:
编程题求解,求大神解析
[打印本页]
作者:
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