谁帮帮忙给我改下这程序。。
来源:百度文库 编辑:神马文学网 时间:2024/04/28 04:33:58
#include"stdio.h"
int transform(int *a, int b);
void output(int *a,int n);
void handle(int *a,int n);
void main()
{
int i;
int num;
int a[20];
printf("input a decimal(from 0 to 999) number: ");
scanf("%d",&num);
if(num>1)
{
i=transform(a,num);
handle(a,i);
printf("transformde number: ");
output(a,i);
printf("\n");
}
else
{
printf("%d\n",num);
}
}
int transform(int *a, int b)
{
int *p;
int re=0;
p=a;
while(b/2>=1)
{
re++;
*p=b%2;
p++;
b=(b/2);
}
*p=1;
re=re+1;
return re;
}
void output(int *a, int n)
{
int *p;
int i;
p=a;
for(i=0;i
{
printf("%d",*(p+i));
}
}
void handle(int *a,int n)
{
int *p,*q;
int temp;
for(p=a,q=a+n-1;p
int transform(int *a, int b);
void output(int *a,int n);
void handle(int *a,int n);
void main()
{
int i;
int num;
int a[20];
printf("input a decimal(from 0 to 999) number: ");
scanf("%d",&num);
if(num>1)
{
i=transform(a,num);
handle(a,i);
printf("transformde number: ");
output(a,i);
printf("\n");
}
else
{
printf("%d\n",num);
}
}
int transform(int *a, int b)
{
int *p;
int re=0;
p=a;
while(b/2>=1)
{
re++;
*p=b%2;
p++;
b=(b/2);
}
*p=1;
re=re+1;
return re;
}
void output(int *a, int n)
{
int *p;
int i;
p=a;
for(i=0;i
{
printf("%d",*(p+i));
}
}
void handle(int *a,int n)
{
int *p,*q;
int temp;
for(p=a,q=a+n-1;p
{
temp=*p;
*p=*q;
*q=temp;
}
}
这是一个将输入的十进制数以二进制形式输出的程序,可是我编的代码有点耍赖了。。。哪个高人能给我改改我的 int transform(int *a, int b); 这个子函数?我是实在想不出别的算法了。。。。