这是一个将十进制数转化为二进制数的程序
#include<stdio.h>int transform(int dnum,int *bin);
void inv(int *a,int length);
void myoutput(int *a,int length);
main()
{
int k,m,*q,l;
q=&l;
printf("请输入一个十进制的数\n");
scanf("%d",&k);
m=transform(k,q);
inv(q,m);
printf("转化后的数是\n");
myoutput(q,m);
}
int transform(int dnum,int *bin)
{
int i=0,b=1;
int a[100];
bin=a;
a[i]=dnum%2; //将第一次的余数存储在a[0]中;
i=1;
while(b!=0)
{
b=dnum/2;//整数求商
a[i]=b%2;求余数
i++;
}
return i-1;
}
void inv(int *a,int length)
{
int *p,*q,temp;
p=a;q=a+length-1;
for(;p<=q;q--,p++)
{
temp=*p;
*p=*q;
*q=temp;
}
}
void myoutput(int *a,int length)
{
int i;
for(i=0;i<length;i++)
printf("%3d",*(a+i));
}
//十进制转化为二进制数
//这个程序有问题,但不知道那里有错误