C语言 递归函数的一些测试
2016-10-30 11:45
148 查看
我经常会被一些看似复杂的结构混淆,静下心来想想,其实只不过是一种简单结构换了一种表现形式或者是结构特殊化了,它的本质是永远不会变的,按照以往的思路去思考,问题总是会带给你收获。
做这个题目之前之前对递归也不是太懂,还好遇见了你。
/题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
item11(int num) 应该叫一个递归函数,我以前有一个疑惑:如果递归函数下面还有语句要执行的话,那么它会是一个什么情况呢?
是调用完一次递归函数就执行下一句吗?还是直接就不调用了。
这个测试的输出是
。
那我就可以判断 整个递归调用结束之后才会回来执行接下去的语句,哇,感觉好复杂啊,根本看不清为什么,脑子一片混乱。
然后我又写了几句代码
这个我肯定知道啊, 先输出 Hello,World啊,等到test()执行完毕之后 在输出 Hello,swfq。
那为什么是从里往外开始调用的?(为什么从15到45到90)
做这个题目之前之前对递归也不是太懂,还好遇见了你。
/题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
void item11(int num){ int i,j; for(i=2;i<num;i++){ if(num%i==0){ printf("%d*",i); item11(num/i); printf("hahahahahaha"); printf("%d\n",num); break; } } if(i>=num)printf("%d",num); }
item11(int num) 应该叫一个递归函数,我以前有一个疑惑:如果递归函数下面还有语句要执行的话,那么它会是一个什么情况呢?
是调用完一次递归函数就执行下一句吗?还是直接就不调用了。
这个测试的输出是
。
那我就可以判断 整个递归调用结束之后才会回来执行接下去的语句,哇,感觉好复杂啊,根本看不清为什么,脑子一片混乱。
然后我又写了几句代码
#include<stdio.h> void test(){ printf("Hello,World"); } main(){ test(); printf("Hello,swfq"); }
这个我肯定知道啊, 先输出 Hello,World啊,等到test()执行完毕之后 在输出 Hello,swfq。
那为什么是从里往外开始调用的?(为什么从15到45到90)
#include<stdio.h> void test(){ printf("Hello,World"); test1(); printf("Hello,nicer"); } void test1(){ printf("Hello,wzjssss"); } main(){ test(); printf("Hello,swfq"); }
相关文章推荐
- C语言的一些简单小问题,大家来测试一下吧
- C语言的一些测试程序
- C语言测试
- 软件测试自动化的一些具体做法
- 在项目中使用Hibernate进行大数据量的性能测试,有一些总结(转贴)
- 【转贴】C语言中操作字符串的一些函数源代码
- c语言的一些总结和探讨(未完待续中).
- 用C语言思想改写的用筛法求质数程序(第2修订版) 的一些源代码
- (回顾经典)C语言测试
- 微软Live服务的一些测试签到地址及已经推出的测试网址汇总
- c语言测试工具 掌握CUnit
- MinUnit – 最小的c语言测试模板
- 测试中的一些术语解析
- 一些测试工具
- C语言一些基础:数据类型,运算类型及表达式
- 对32位系统C指针的一些测试
- MinUnit – 最小的c语言测试模板
- C语言测试:想成为嵌入式程序员应知道的0x10个基本问题
- 一些内存使用问题(c语言)
- 有关C++多态的一些测试