帮我改正下面这个程序(数据结构)

2025-12-17 13:33:19
推荐回答(1个)
回答1:

转进制原理知道就很简单了!!

#include
void to_binary(unsigned long n);

int main(void)
{
unsigned long number;
printf("enter an integer :(q to quit)\n");
while(scanf("%ul",&number) == 1)
{
printf("binary equivalent :");
to_binary(number);
putchar('\n');
printf("enter an integer :(q to quit)\n");

}
printf("Done \n");
return 0;
}

void to_binary(unsigned long n)
{
int r;
r = n % 2;
if(n >= 2)
to_binary(n / 2);
putchar('0' + r);

return;
}
#include
#include
#include
long dtoe(int a);
void dtoh(int a,char h[]);

int main(void)
{ long a;
char h[80];
scanf("%d",&a);

dtoh(a,h);
printf("HEX:%s\n",h);
a=dtoe(a);
printf("OCT:%d\n",a);
system("pause");
return 0;
}

long dtoe(int a) // 八进制
{
if (a<8) {
return a;
}
else
return (dtoe(a/8)*10+a%8);
}

void dtoh(int a,char h[]) //十六进制
{
int i;
i=(int)(log(a)/log(16));
h[i+1]=0;
while (a>15) {
if (a%16<10) h[i--]=48+(a%16);
else h[i--]=55+(a%16);
a/=16;
}
if (a>9) h[i]=55+a%16;
else h[i]=48+a%16;

}