问题及代码:
Description
输入一个非负整数(十进制),输出此整数对应的二进制数
Input
正整数(十进制)
Output
对应的二进制数
Sample Input
6
Sample Output
110
/*
烟台大学计算机与控制工程学院
冯琬淇
问题:输入一个非负整数(十进制),输出此整数对应的二进制数
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,n,j;
int a[10];
scanf("%d",&n);
i=0;
while(n)
{
a[i]=n%2;
n=n/2;
i++;
}
if(i>0)i--;
for(j=i;j>=0;j--)
printf("%d",a[j]);
return 0;
}
运行结果:
参考:
总结与心得:
对于i有一个初始值,while(n)的意思是 while(n!=0) 将输入数字除以2的余数依次存储到a[i]中,再依次把n定义为新的被除数 循环 i-1是因为前一步已经算出的使循环停止的i为跳出循环的越界的i,所以再进行倒叙循环时,要把i变回界内最大的i,所以需要i-- 再利用循环倒叙输出。