永发信息网

设计一递归函数实现将任一正整数转达换成二进制数。

答案:2  悬赏:20  手机版
解决时间 2021-05-20 01:48
  • 提问者网友:锁深秋
  • 2021-05-19 11:37

设计一递归函数实现将任一正整数转达换成八进制数。

设计一递归函数实现将任一正整数转达换成十六进制数

希望写出这三个语句,希望用c程序编程

回答好了,一定答谢

最佳答案
  • 五星知识达人网友:拾荒鲤
  • 2021-05-19 12:08

主要就是递归.. 三个语句的结构都一样. 除了十六进制的输出要用%x格式,因为%d不能表示10以上的数.



十进制转二进制:


#include< stdio.h >


void TenToB( int n )
{
if( n > 1 )
TenToB( n / 2 );

printf( "%d", n % 2 );
}


int main()
{
int n;
scanf( "%d", &n );
TenToB( n ); //传递十进制,转换二进制输出.
}



十进制转八进制:



#include< stdio.h >


void TenToB( int n )
{
if( n > 7 )
TenToB( n / 8 );

printf( "%d", n % 8 );
}


int main()
{
int n;
scanf( "%d", &n );
TenToB( n ); //传递十进制,转换二进制输出.
}



十进制转十六进制:



#include< stdio.h >


void TenToB( int n )
{
if( n > 15 )
TenToB( n / 16 );

printf( "%X", n % 16 );
}


int main()
{
int n;
scanf( "%d", &n );
TenToB( n ); //传递十进制,转换二进制输出.
}


全部回答
  • 1楼网友:woshuo
  • 2021-05-19 12:23

下列函数参数表示将整数x转换成y进制数:

a(int x,int y)

{int i=0,j,num[20];

while(x) {num[i++]=x%y;x=x/y;}

for(j=i-1;j>=0;j--)

printf("%d",num[j]);printf("\n");}

调用如下:

main()

{int x;

scanf("%d",&x);

a(x,2);a(x,8);a(x,16);} 输入x,分别转成2 8 16进制数,并输出。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯