转载

2、给一个正在学习递归而迷糊的初学者

递归 ---  C语言

1、前言

首先想和大家说的是,我也是一个初学者,这是我写的第二篇博客,也是针对和我一样正在学基础的猿(媛)友,我是一个从.Net想转iOS的小生,对于大家

说,我也许学着会比大家简单许多, 但是在后面其实也是一个小白了啦,我希望大家不要放弃自己的选择,坚持下去,加油   在这条道上一起奔跑吧 。

:star:️ 什么叫递归    ???

一个函数在它的函数体内调用它自身称为递归调用   其实通俗点   就是自己搞自己    (见到HR千万不要这么说啊----不然他 (她) 来一句你搞试试,你就死定了!!! :joy::joy::joy: )

(其实这也是我一个非常淫荡凶残的小白哥哥说的   :grin::grin::grin:)

:star:️  补充:递归其实也是一种循环 (一种奇葩的循环,自己搞自己嘛,你们懂的     :smile::smile::smile:)

2、旅程开始

1、构建成递归的条件

~、必须要有一个自己调用自己的前提      (不然就没有意义了)

~、进行递归必须首先知道它的跳出条件   (不然就是死循环)

~、必须找到规律

2、案例

No1、 获取用户输入的数字, 直到用户输入一个正数为止

1、从这段字我们可以看到  上述构建成递归的条件吧 

第一、输入正数为止,那么意思就是说无限制的循环,只要输入到正数那么就结束该程序  对吧  (这里我们可以看到  自己调用自己吧);

第二、输出整数为止(这是一个条件吧)

2、来吧,我们第一步是不是要创建一个函数呢     那么我们取名去GetNumber()   

1 void GetNumber() 2 { 3 //声明一个用来接受用户输入值的变量number  给它初始化并赋值为-1 4     int number = -1; 5 //提示用户输入并接受用户输入的值 6     printf("请输入一个正数,其它数忽略不计/n"); 7     scanf("%d", &number); 8     9 }
1 void GetNumber() 2 { 3 //声明一个用来接受用户输入值的变量number  给它初始化并赋值为-1 4     int number = -1; 5 //提示用户输入并接受用户输入的值 6     printf("请输入一个正数,其它数忽略不计/n"); 7     scanf("%d", &number); 8     9 }  View Code

3、函数写好了  那我们是不是需要有一个跳出循环的条件呢 (也就是不执行递归的条件)

1 //如果输入的number小于0那证明用户是输入的负数吧   那就得再次输入 2 //那么就得在调用一次自己吧     3     if (number < 0) { 4 //        负数 5        GetNumber(); 6     }else{ 7 //        正数 8       printf("number = %d/n", number); 9     }

4、其实我们的第三步就是,我们的核心,那么核心都完事了。程序当然就完事了啊,那么我们来看看GetNumber()函数所有的代码吧

1 void GetNumber()  2 {  3     //声明一个用来接受用户输入值的变量number  给它初始化并赋值为-1  4     int number = -1;  5     //提示用户输入并接受用户输入的值  6     printf("请输入一个正数,其它数忽略不计/n");  7     scanf("%d", &number);  8     //如果输入的number小于0那证明用户是输入的负数吧   那就得再次输入  9     //那么就得在调用一次自己吧 10     if (number < 0) { 11         //        负数 12         GetNumber(); 13     }else{ 14         //        正数 15         printf("number = %d/n", number); 16     } 17      18 }
1 void GetNumber()  2 {  3     //声明一个用来接受用户输入值的变量number  给它初始化并赋值为-1  4     int number = -1;  5     //提示用户输入并接受用户输入的值  6     printf("请输入一个正数,其它数忽略不计/n");  7     scanf("%d", &number);  8     //如果输入的number小于0那证明用户是输入的负数吧   那就得再次输入  9     //那么就得在调用一次自己吧 10     if (number < 0) { 11         //        负数 12         GetNumber(); 13     }else{ 14         //        正数 15         printf("number = %d/n", number); 16     } 17      18 }  View Code

5、写完我们的代码后我们开始执行吧

1 #include <stdio.h> 2  3 void GetNumber(); 4 int main() 5 { 6 //开始调用方法   如果是写一个 7     GetNumber(); 8     return 0; 9 }

以上所述部分都是属于刚刚接受递归 以及很初级  并且很晕乎的朋友    

欢迎大家的转载!!!!!!! :grin::grin::grin:    

正文到此结束
Loading...