#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<n;i++)
{
printf("%d",*(p+i));
}
}
void handle(int *a,int n)
{
int *p,*q;
int temp;
for(p=a,q=a+n-1;p<q;p++,q--)
{
temp=*p;
*p=*q;
*q=temp;
}
}
這是一個將輸入的十進制數(shù)以二進制形式輸出的
程序,可是我編的代碼有點耍賴了。。。哪個高人能給我改改我的 int transform(int *a, int b); 這個子函數(shù)?我是實在想不出別的算法了。。。。
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請
點擊舉報。