#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; } } 這是一個(gè)將輸入的十進(jìn)制數(shù)以二進(jìn)制形式輸出的程序,,可是我編的代碼有點(diǎn)耍賴(lài)了。,。,。哪個(gè)高人能給我改改我的 int transform(int *a, int b); 這個(gè)子函數(shù)?我是實(shí)在想不出別的算法了,。,。。,。 |
|
來(lái)自: jingyi2198 > 《我的圖書(shū)館》