#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; } } 这是一个将输入的十进制数以二进制形式输出的程序,可是我编的代码有点耍赖了。。。哪个高人能给我改改我的 int transform(int *a, int b); 这个子函数?我是实在想不出别的算法了。。。。 |
|
来自: jingyi2198 > 《我的图书馆》