C语言递归函数进制数转换 c语言转化进制的函数

C语言用函数的递归调用将十进制数转化为二进制数

#includestdio.h

成都创新互联公司主营华池网站建设的网络公司,主营网站建设方案,APP应用开发,华池h5小程序开发搭建,华池网站营销推广欢迎华池等地区企业咨询

#define n 20

void change2(int t)

{ //将十进制数转换到存放二进制的数组中

int i;

int b[n]={0};

for(i=0;i20;i++)

{

b[i]=t%2;

t=t/2;

}

for(i=n-1;i=0;i--)

{

printf("%d",b[i]);

}

printf("\n");

}

void main(){

int demo;

printf("请输入一个十进制数:");

scanf("%d",demo);

change2(demo);

}

如何用C语言编写递归函数,实现任意十进制整数到十六进制整数的转换,并打印出来?

void change(){

int n;//n就是你要转换的十进制数

char ch[10]={'\0'};

while(i10){

if(n%16==0)

ch[i]=0;

else

ch[i]=n%16;

i++;

}

int len=char.length();

for(int i=len-1;i=0;i--)

sprintf("%c",ch[i]);

}

c语言用递归法将十进制转换为二进制

这个是

递归程序

,程序的意思就是:

十进制转化为2进制,利用辗转除以2取

余数

方式

,这个网上有很多,其他比如十进制转

十六进制

也是这个方式,只不过辗转除以16,直到本身变为0,每次相除的余数最后组合成要转换的结果。PKU-一夫

C语言,编一程序用递归函数,把输入的一个十进制整数转换成二进制数输出

#includestdio.h

void f(int n)

{

if(n) f(n/2);

else return;

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

}

int main()

{

int n;

while(1)

{

scanf("%d",n);

if(n0) break;

if(n==0) printf("0");

f(n);

printf("\n");

}

return 0;

}

c语言 数制转换(递归)

#include "stdafx.h"

#include stdlib.h

#include stdio.h

#include string.h

int converN(int p,int m, int n);

int conver10(char *pold, int m);

int power(int m, int pow);

int main( )

{

int old,fresh,oldv=0;

char cold[100];

printf("输入的数制不能超过16,按q退出,按回车继续。");

while(getchar() != 'q')

{

printf("请输入原数制:");

scanf("%d",old);

printf("请输入新数制:");

scanf("%d",fresh);

printf("请输入要转换数字:");

scanf("%s",cold);

printf("转换后数字为:");

converN(conver10(cold, old),old,fresh);

putchar('\n');

printf("输入的数制不能超过16,按q退出,按回车继续。");

while(getchar() != '\n')

continue;

}

return 1;

}

int power(int m, int pow)

{

if(pow == 0)

return 1;

if(pow 0)

return m*power(m,pow-1);

}

int conver10(char *pold, int m)

{

int len = strlen(pold);

int res=0;

for(int i=0; ilen; i++)

{

switch(tolower(pold[i]))

{

case 'a':

res += (pold[i]-'a'+10) * power(m,len-i-1);

break;

case 'b':

res += (pold[i]-'a'+10) * power(m,len-i-1);

break;

case 'c':

res += (pold[i]-'a'+10) * power(m,len-i-1);

break;

case 'd':

res += (pold[i]-'a'+10) * power(m,len-i-1);

break;

case 'e':

res += (pold[i]-'a'+10) * power(m,len-i-1);

break;

case 'f':

res += (pold[i]-'a'+10) * power(m,len-i-1);

break;

default:

res += (pold[i]-'0') * power(m,len-i-1);

}

}

return res;

}

int converN(int p,int m, int n)

{

int i=0;

if(p/n != 0)

converN(p/n,m,n);

if((i=p%n) 10)

putchar('0' + i);

else

putchar('a' + i - 10);

return 1;

}


网站题目:C语言递归函数进制数转换 c语言转化进制的函数
新闻来源:http://ybzwz.com/article/hgoois.html