#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ù)?我是實在想不出別的算法了。。。。 |
|
來自: jingyi2198 > 《我的圖書館》