用递归法将一个整数转换成字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用递归法将一个整数转换成字符串相关的知识,希望对你有一定的参考价值。

用递归法将一个整数n转换成字符串,例如输入483,应输入“384”,n的位数不确定,可以间任意位数的整数。
下面是经过运行是正确的程序:

#include<stdio.h>
void convert(int n)

int i;
if ((i=n/10)!=0)
convert(i);
putchar(n%10+'0');

main()

int number;
printf("\nInput an integer:");
scanf("%d",&number);
printf("Output:");
if (number<0)

putchar('-');
number=-number;

conert(number);

烦请高人给详细解释一下,最好用注释的形式。

//举例说明该函数流程,假如输入123,123/10后得12,余数是3
//再次运行convert函数,12/10得1,余数是2
//再次运行convert函数,1/10得0,余数是1
//至此,递归结束,开始打印数字,首先打印最后一次递归的结果1
//然后打印倒数第二次的结果2
//最后打印3,输出123
void convert(int n)

int i; //定义整数变量
if ((i=n/10)!=0)//如果整数i除以10后不为0,说明高位还有值,需要更多字符来表示
convert(i);//调用自身,使用除以10后的i值
putchar(n%10+'0');//打印余数,余数是1则打印字符1,以此类推

main()

int number;//定义整数变量
printf("\nInput an integer:");//输出信息
scanf("%d",&number);//让用户输入一个整数
printf("Output:");//输出信息
if (number<0)//如果是负数

putchar('-');//打印负号
number=-number;//负数变为正数

convert(number); //执行递归函数
参考技术A 你这程序有错误哦,输出结果是原序输出
以下是我稍微修改的程序,及相应的注释

#include<stdio.h>
void convert(int n)

int i;
//注意,下面这语句应该是放这里的,而不是放在后面
putchar(n%10+'0');//每次除10取余数,加‘0’转化为字符,一个个反序输出
if ((i=n/10)!=0)//把传递进来的数除10取整,比如123,取一次整i就变为12
convert(i); //调用自身这个函数,把i的现值传递到convert函数进行递
//归,以此类推,直到(i=n/10)=0时,停止递归,一步步返回

main()

int number;
printf("\nInput an integer:");
scanf("%d",&number);
printf("Output:");
if (number<0) //判断是否为负数

putchar('-'); //如果为负数,先输出一个负号
number=-number; //将负数转化为整数,方面后面运算

convert(number); //调用递归函数convert()


希望能帮到你,可以继续探讨!

c语言中如何将字符串转化成整数型并输出?

参考技术A

c语言中,可以使用atoi()函数将字符串转化成整数型并输出。

atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中。int atoi(const char *nptr) 函数会扫描参数 nptr字符串,会跳过前面的空白字符(例如空格,tab缩进)等。

如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回 0 。特别注意,该函数要求被转换的字符串是按十进制数理解的。atoi输入的字符串对应数字存在大小限制(与int类型大小有关),若其过大可能报错-1。

扩展资料:

C语言常用函数:

1、int abs(int i)

返回整型参数i的绝对值。

2、double cabs(struct complex znum)

返回复数znum的绝对值。

3、double fabs(double x)

返回双精度参数x的绝对值。

4、long labs(long n)

返回长整型参数n的绝对值。

5、double exp(double x)

返回指数函数ex的值。

6、double frexp(double value,int *eptr)

返回value=x*2n中x的值,n存贮在eptr中。

7、double ldexp(double value,int exp)

返回value*2exp的值。

8、double log(double x)

返回logex的值。

9、double log10(double x)

返回log10x的值。

10、double pow(double x,double y)

返回x^y的值。

参考资料来源:百度百科-atoi

以上是关于用递归法将一个整数转换成字符串的主要内容,如果未能解决你的问题,请参考以下文章

C语言编程:用递归法将一个整数n转换成字符串。

用递归法将一个整数n转换成字符串,例如输入483,应输出字符串“483”。N的位数不确定,可以是任

用递归法将一个整数n转换成字符串。例如,输人483,应输出字符串483。n的位数不确定,可以是任意位数的整数

用递归法将整数n转换成字符串,输入483,输出字符“483”,怎么理解递归函数,putchar是输出一个字符。。

用C语言递归法将一个整数化为字符串

C语言:用递归法讲一个整数n转换成字符串。例如输入483,应输出字符串“483”,n的位数不定,为任意位数整