c语言课件7Function.pptVIP

  • 2
  • 0
  • 约1.29万字
  • 约 95页
  • 2017-05-30 发布于北京
  • 举报
挑战性的作业 挑战类型表示的极限 ——50位的n!计算? 大数的存储问题 * Questions and answers * 之所以输出-10!=18,是因为把printf函数的返回值作为函数Fact()的返回值返回给主函数了。 这个程序在Visual C++ 6.0环境下编译不会显示任何警告信息,但在Code:Blocks下编译会显示如下警告信息,提示程序第23行语句中的条件判断是永假的: warning: comparison of unsigned expression 0 is always false 采用前面例题中判断函数入口参数合法性的方法,固然可以检查传入参数的错误,但是这种方法不仅使程序编译后的目标代码体积变大,同时还降低了最终发布程序的执行效率。 如果某一功能重复实现3遍以上,就应该考虑将其写成函数。这样不仅能使程序的结构更加清晰,而且有利于模块的重用,既方便自己,也方便别人。函数的规模控制在50行代码以内,每个函数只有一个入口和出口。 问题:函数可以自己调用自己吗? 从上面的例子可以看出,当函数递归调用到最简单的形式,即当n=1时,递归调用就不必在继续调用了,可以直接用Move(n, a, b) 实现。可见,一个递归调用函数必须包含如下两个部分: (1) 一般情况--- 由其自身定义的、与原始问题类似的、规模更小的子问题,它使递归过程持续进行;(2)基线

文档评论(0)

1亿VIP精品文档

相关文档