编写函数把任意十进制正整数转换成二进制数。

提示:把十进制数不断. 被2除余数放在一个一维数组中,直到商数为零。在主函数中进行输出,要. 求不得按逆序输

//最符合题意的答案,没有超过本章知识点,可以完全升级下面的答案,简洁明了
#include<stdio.h>
int tow(int *,int);
int tow(int a[],int n)
{int yu=0;
while(n!=0)
{ a[yu]=n%2;
n=n/2;
yu++;
}
return yu;
}
int main()
{ int a[10000],num,n;
printf("input num:");
scanf("%d",&num);
n=tow(a,num);
for(n--;n>=0;n--)//注意这里第一个n--;只执行一次,没有他数组下标会越界
printf("%d",a[n]);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-05-26
#include "stdio.h"
#include "math.h"
#include "stdlib.h"
int j=0;
char* toBinary(int n)
{
char* ch = new char[1000];
int i;
for(i = n;i>=1;i/=2)
{
ch[j] = i%2+48;
j++;
}
return ch;
}

int main()
{
char *ch = new char[1000];
ch = toBinary(100);
for(j--;j>=0;j--)
printf("%c",ch[j]);
printf("\n");
return 0;
}本回答被提问者采纳
第2个回答  2009-07-24
void printBinary(int n)
{
if(n>1)printBinary(n/2);
printf("%d",n%2);
}
第3个回答  2009-07-24
提示已经很清楚了,实现就可以了