算法分析:在实现模2取余后需要逆序输出,这个地方通过不断乘以10,不需要再通过数组或者逆序函数来实现。
#include <stdio.h>
int Decimal(int n)
{
int result=0,k=1;
int i;
while(n){
i=n%2;
result = k*i + result;
k = k*10;
n = n/2;
}
return result;
}
int main()
{
int n,ret=0;
printf("请输入十进制的数:");
scanf("%d",&n);
ret=Decimal(n);
printf("%d 的二进制为:%d\n",n,ret);
return 0;
}