用递归法将一个整数转换成字符串
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);
烦请高人给详细解释一下,最好用注释的形式。
//再次运行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语言中如何将字符串转化成整数型并输出?
参考技术Ac语言中,可以使用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
以上是关于用递归法将一个整数转换成字符串的主要内容,如果未能解决你的问题,请参考以下文章
用递归法将一个整数n转换成字符串,例如输入483,应输出字符串“483”。N的位数不确定,可以是任
用递归法将一个整数n转换成字符串。例如,输人483,应输出字符串483。n的位数不确定,可以是任意位数的整数