谁帮帮忙给我改下这程序。。

来源:百度文库 编辑:神马文学网 时间: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
  {

  temp=*p;

  *p=*q;

  *q=temp;

  }

  }

  这是一个将输入的十进制数以二进制形式输出的程序,可是我编的代码有点耍赖了。。。哪个高人能给我改改我的 int transform(int *a, int b); 这个子函数?我是实在想不出别的算法了。。。。