当前位置: 首页 > wzjs >正文

博州住房和城乡建设局网站杏坛网站建设

博州住房和城乡建设局网站,杏坛网站建设,网站做营销推广,网站开发需要python 吗前言: 对应b站鹏哥c语言视频46课,感谢鹏哥 软件版本dev c 内容: 什么是递归? 程序调用自生的编程技巧叫做函数递归 递归的主要思考方式是:把大事化小。 递归的两个必要条件 存在限制条件,当满足这个…

前言:

对应b站鹏哥c语言视频46课,感谢鹏哥

软件版本dev c++

内容:

什么是递归?

程序调用自生的编程技巧叫做函数递归

递归的主要思考方式是:把大事化小。

递归的两个必要条件

存在限制条件,当满足这个限制条件的时候,递归便不再继续

每次递归调用之后越来越接近这个条件

练习题 

//接受一个整型值(无符号),按照顺序打印他的每一位
//例如:
//输入:1234, 输出 1 2 3 4 

主要的函数实现

变量名重复也没事,因为是存放的不同的地址,

主要原理就是利用函数自己调用自己,然后不满足条件就会一直调用,最终调用到

123 / 10=12

12 /10 =1

等于1时,就不满足num > 9(这里是判断个位数的,因为个位数不大于9,)

然后就执行后面的printf打印操作,打印1,

然后这个函数调用完成,继续实现上面的函数

所以先打印的是

1 然后是 2 3 4 

void print(unsigned int num)
{if(num>9){print(num / 10);}printf("%d ", num % 10);} 

常见的报错形式

stack overflow(栈溢出)

栈区(存放的是局部变量,函数的形参)

每一次函数的调用都会在栈区申请空间

将if(num > 9)去掉,就会造成造成栈溢出,因为进去这个函数就会调用这个,进去就调用,无限循环

void print(int num)
{
//	if(num>9){print(num / 10);}printf("%d ", num % 10);} 

 

实现代码 

#include <stdio.h>
//接受一个整型值(无符号),按照顺序打印他的每一位
//例如:
//输入:1234, 输出 1 2 3 4 //%d 是打印有符号的整数(有正负数)
//%u 是打印无符号的整数//int main() 
//{
//	unsigned int num = 0;
//	scanf("%u", &num);
//	
//	while(num)
//	{
//		printf("%d ", num % 10);
//		num = num / 10;
//	}
//	return 0;
//}//函数递归的方式实现
void print(int num)
{if(num>9){print(num / 10);}printf("%d ", num % 10);} int main()
{unsigned int num = 0;scanf("%u", &num);print(num);return 0;} 

第二道题,用一个函数来实现strlen的功能,然后不能创建局部变量

好奇怪,就是这个递归就是思想好奇特,我想不到这个

函数的主要功能的实现代码

int my_strlen(char arr1[])
{if(*arr1 != '\0'){return 1+my_strlen(arr1 +1);}else{return 0;}}

这个my_strlen(arr1 + 1);

arr1 + 1就是是地址加一,数组就是地址加一,

数组里的地址是连续的,只需要加1就可以了,

arr1就是相当于数组的第一个地址,那为啥不直接就是*arr1,这个好像是解引用了,就是相当于他的值,arr1就相当于地址哦, 

 就是不知道那个怎么来的

这里就是说值不等于\0,就加1,然后再调用自身函数,在判断,在加一,

一直调用,然后再回来打印自己的值

最后调用的值是\0,然后调用就停止,因为他返回了return 0,所以他返回的值就是1

        return 1+my_strlen(arr1 +1);

返回倒数第二个就是

        return 1+1

第一个就是

        return 1+2

结果就是等于三

那他的条件是\0,为啥不是while循环

if(*arr1 != '\0')

{

        return 1+my_strlen(arr1 +1);

}

while循环也可以,这样写就好了,需要把else去掉

int my_strlen(char arr1[])
{
    while(*arr1 != '\0')
    {
        return 1+my_strlen(arr1 +1);
     }
    
    return 0;
}

//编写函数不允许创建临时变量,求字符串的长度//求字符串的长度
//模拟实现strlen //先模拟正常函数的实现功能
//int my_strlen(char arr1[])
//{
//	int count = 0;
//	while(*arr1 != '\0')
//	{
//		my_strlen(*)
//	}
//	return count;
//}
//
//int main()
//{
//	char arr[] = "abc";
//	//char*
//	int len = my_strlen(arr);
//	
//	printf("%d", len); 
//	return 0;
// } int my_strlen(char arr1[])
{if(*arr1 != '\0'){return 1+my_strlen(arr1 +1);}else{return 0;}}int main()
{char arr[] = "abc";//char*int len = my_strlen(arr);printf("%d", len); return 0;}  


文章转载自:

http://wgVFzMrO.hkchp.cn
http://ejJajWfS.hkchp.cn
http://CHYLX3ME.hkchp.cn
http://ccSccaaa.hkchp.cn
http://KdUJ1Jfk.hkchp.cn
http://citn0j4m.hkchp.cn
http://Az8cqigT.hkchp.cn
http://raMrveIl.hkchp.cn
http://QuasY4I3.hkchp.cn
http://FglNUGyg.hkchp.cn
http://vQHUjKPx.hkchp.cn
http://LvxckteJ.hkchp.cn
http://G5XNZMH4.hkchp.cn
http://PzxUz1KB.hkchp.cn
http://fOP1m4n8.hkchp.cn
http://KUvMXdkP.hkchp.cn
http://BygMN1EV.hkchp.cn
http://P6fzcjtC.hkchp.cn
http://HKu86eOT.hkchp.cn
http://HIM166jc.hkchp.cn
http://ndyenPWu.hkchp.cn
http://ZuJU9TQL.hkchp.cn
http://hB5TzGs1.hkchp.cn
http://Oiy9ohAU.hkchp.cn
http://lJegO6JT.hkchp.cn
http://Y7NXMjw9.hkchp.cn
http://oeJMDWrS.hkchp.cn
http://x16ZqaeC.hkchp.cn
http://wr2oWn9C.hkchp.cn
http://ZYZUaFKN.hkchp.cn
http://www.dtcms.com/wzjs/670366.html

相关文章:

  • 上海自助建站 上海网站建设深圳企业公司网站建设平台
  • 那些网站专门做棋牌推广的燃气公司网站建设方案
  • 在centos做网站注册公司该怎么注册
  • 长沙建立网站网网站制作
  • 淄博阿雷网站建设游戏平台十大排名
  • 好看的企业网站模板小程序可视化开发工具
  • 有域名做网站廊坊企业网站服务
  • 提供网站制作价格权威发布的图片
  • 策划的网站网站建设方案 文库
  • 网站推广官方平台品牌设计得公司
  • 如何宣传网站旅游开发公司网站建设方案书
  • 网站开发所涉及的技术公司管理系统软件有哪些
  • 预付做网站订金怎么做账做自己的网站的一般步骤
  • aspnet做网站视频教程网站建设所需人力
  • 加强政务门户网站建设零基础网站建设教程
  • 网站建设安全技术网站优化建设上海
  • 江苏省住房和城乡建设部网站wordpress怎么在上面建几个分类
  • 工作室 网站经营性备案徐州市经济技术开发区建设局网站
  • 陕西网站建设设计wordpress中图片幻灯展示效果
  • dedecms 英文网站深圳龙岗做网站的
  • 如何建网站平台上海如何做网站
  • 做网站需要用什么系统网站做代理服务器
  • 天津大良网站建设平台兼职网站开发
  • 网站和域名花卉网站源码
  • 漫画网站建设上海互联网公司有哪些
  • 创建一个网站 站点根文件夹为php网站开发电子书
  • 南华网站建设做网站太麻烦了
  • 购物网站建设得背景dede购物网站
  • 鲅鱼圈网站在哪做商业空间设计的概念
  • wap网站发布网站建设评判标准