当前位置:   article > 正文

C语言程序设计学习笔记第十章函数进阶_int fac 的用法

int fac 的用法

第十章

函数进阶

10.1函数的递归调用

  1. #include <stdio.h>
  2. int fac(int n);
  3. int main(void){
  4. printf("%d\n",fac(5));
  5. return 0;
  6. }
  7. //求n的阶乘
  8. int fac(int n){
  9. int sum = 1;
  10. if(n < 1){//形参的异常检查
  11. return -1;//返回异常值-1
  12. }
  13. for(int i = 1;i<=n;i++){
  14. sum = sum * i;
  15. }
  16. return sum;
  17. }
  1. //求n的阶乘递归写法
  2. #include <stdio.h>
  3. int fac(int n);
  4. int main(void){
  5. int m = 0;
  6. printf("请输入m的值:");
  7. scanf("%d\n",&m);
  8. printf("%d\n",fac(m));
  9. return 0;
  10. }
  11. int fac(int n){
  12. if(n < 1){
  13. return -1;
  14. }else if(n == 1){
  15. return 1;
  16. }else{
  17. return n*fac(n-1);
  18. }
  19. }

10.2作用域

  1. #include <stdio.h>
  2. int c = 10;//c的作用域是文件作用域
  3. void fun(int b);
  4. int main(void){
  5. int a = 10;//a的作用域是函数作用域
  6. a = 20;
  7. {
  8. int j = 0;//语句块作用域
  9. j = 50;
  10. }
  11. return 0;
  12. }
  13. int fun(int b){//函数名和返回值属于文件作用域,函数的参数以及函数体属于函数作用域
  14. a = 30;//此处报错,上面定义了a为整型,a的作用域是上面的主函数,不在该函数的适用范围
  15. }

注意:

1.在同一个作用域内,不能出现相同的标识符,同一个作用域内不能重复定义变量名

2.一个标识符不能提示属于两个作用域,使用就近原则

  1. #include <stdio.h>
  2. int c = 10;//c的作用域是文件作用域,全局变量
  3. void fun(int b);
  4. int main(void){
  5. int a = 10;//a的作用域是函数作用域
  6. //int a = 20;//这样会报错,重复定义了a
  7. a = 20;
  8. { //语句块作用域
  9. int a = 20;//在这里定义a不会报错,此处a的作用域和上面的a不是同一个作用域
  10. int j = 0;
  11. j = 50;
  12. }
  13. return 0;
  14. }
  15. int fun(int b){//函数名和返回值属于文件作用域,函数的参数以及函数体属于函数作用域
  16. //a = 30;//此处报错,上面定义了a为整型,a的作用域是上面的主函数,不在该函数的适用范围
  17. }

10.3局部变量与全局变量

10.4存储类别

 

 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/850118
推荐阅读
相关标签
  

闽ICP备14008679号