递归调用函数-以字符串输出数字

递归输出字符,注意,使用putchar输出一个数字的时候需要加‘0‘,否则。。。。

 1 #include<stdio.h>
 2
 3 void convert(int n)
 4 {
 5     int i;
 6     if((i=n/10)!=0)
 7     {
 8         convert(i);
 9     }
10     putchar(n%10+‘0‘);
11 }
12
13 int main(void)
14 {
15     int num;
16     printf("input a num:\n");
17     scanf("%d",&num);
18     printf("string is :\n");
19     if(num<0)
20     {
21         putchar(‘-‘);
22         num=-num;
23     }
24     convert(num);
25     putchar(‘\n‘);
26     return 0;
27 }

每次调用都获得一个去掉了最后一位的数字,然后递归取余就可以把最高位到最低位按照字符形式输出,相当于数字转字符串。

时间: 2024-10-23 11:28:02

递归调用函数-以字符串输出数字的相关文章

【C语言】reverse_str递归调用函数

#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> void reverse_str(char *str) { char tmp; int len = strlen(str); if (*str != '\0') { tmp = *str; *str = str[len - 1]; str[len - 1] = '\0'; reverse_str(str + 1); str[len - 1

递归调用(一)

学习编程的时候老师总是不建议使用递归,一些书上至今也是这么建议的.但是递归在二叉树上的应用即优美又稍显复杂.所以弄清楚递归的本质是分治是很有必要的.将大规模问题缩小. 为什么要用递归 编程里面估计最让人摸不着头脑的基本算法就是递归了.很多时候我们看明白一个复杂的递归都有点费时间,尤其对模型所描述的问题概念不清的时候,想要自己设计一个递归那么就更是有难度了. 很多不理解递归的人(今天在csdn里面看到一个初学者的留言),总认为递归完全没必要,用循环就可以实现,其实这是一种很肤浅的理解.因为递归之所

递归调用得利弊

递归调用函数 为了描述问题得某一状态,得用到它的上一状态,而上一状态,又得用到它的上一状态,这种用自己来定义自己的方法,称为递归定义. 递归结束条件,得有一个条件结束递归,不然会无穷递归. 优点: 简化算法.化繁为简, 缺点: 不节省存储空间,运行效率也不高. void m(int a) { if (a<0) { printf("stop\n"); }else{ a--; printf("%p    %d\n",&a,a); m(a); } retur

(转载)你好,C++(27)在一个函数内部调用它自己本身 5.1.5 函数的递归调用

你好,C++(27)在一个函数内部调用它自己本身 5.1.5 函数的递归调用 5.1.5 函数的递归调用 在函数调用中,通常我们都是在一个函数中调用另外一个函数,以此来完成其中的某部分功能.例如,我们在main()主函数中调用PowerSum()函数来计算两个数的平方和,而在PowerSum()函数中,又调用Power()函数和Add()函数来计算每个数的平方并将两个平方加和起来成为最终的结果.除此之外,在C++中还存在另外一种特殊的函数调用方式,那就是在一个函数内部调用它自己本身,这种方式也被

你好,C++(27)在一个函数内部调用它自己本身 5.1.5 函数的递归调用

5.1.5 函数的递归调用 在函数调用中,通常我们都是在一个函数中调用另外一个函数,以此来完成其中的某部分功能.例如,我们在main()主函数中调用PowerSum()函数来计算两个数的平方和,而在PowerSum()函数中,又调用Power()函数和Add()函数来计算每个数的平方并将两个平方加和起来成为最终的结果.除此之外,在C++中还存在另外一种特殊的函数调用方式,那就是在一个函数内部调用它自己本身,这种方式也被称为函数的递归调用. 函数的递归调用,实际上是实现函数的一种特殊方式.当递归函

用递归调用来判断字符串是否是回文

思路:先判断字符串的长度,当为1时就是回文的字符串,之后如果大于1,就调用函数进行判断.通过返回值对其是否是回文进行输出. 在函数中主要是传入字符串数组还有两个参数,经两个参数作为下标,通过字符串的CharAt函数对字符串的相应部分进行比较,最后进行两个参数,前面的加一后面的减1,逐渐向中间靠拢.依次进行比较.当只剩下一个或者两个时对其进行另外的分析. 其主要的代码如下: package chengZhang; import java.util.Scanner; public class Jie

(C语言)递归调用实现字符串反转

问题描述: 编写一个函数reverse_string(char *srring)(递归实现) 实现:将参数字符串中的字符反向排列. 要求:不能使用处C库函数中的字符串操作函数. 程序分析: 思路如下: 本程序用递归的思想实现这一功能,最关键的一点是要改变'\0'所在的位置.a.先交换字符串最外层的两个字符,同时保存第一个字符的值(称之为压栈)  b.将指针指向下一个字符,将两个值交换后的最后一个字符赋为'\0',从而减小问题的规模.c.递归调用,相当于传入新的字符串.d.递归调用结束后,把之前保

C语言 字符串和数字转换函数

atof(将字符串转换成浮点型数) 相关函数 atoi,atol,strtod,strtol,strtoul 表头文件 #include <stdlib.h> 定义函数 double atof(const char *nptr); 函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回.参数nptr字符串可包含正负号.小数点或E(e)来表示指数部分,如123.456或123e-2.

C语言函数的简单递归调用

#include <stdio.h> int age(int n);//外部声明 int main() {     printf("age=%d\n",age(5));//age=18--递归-输出第五个学生的年龄     return 0; } int age(int n) {     //在调用一个函数的过程中又出现直接或者间接的调用该函数本身,称为递归调用     int c;     if (n==1) {         c=10;     }else{