赞
踩
- #include <stdio.h>
- int fac(int n);
-
- int main(void){
- printf("%d\n",fac(5));
- return 0;
- }
-
- //求n的阶乘
- int fac(int n){
-
- int sum = 1;
-
- if(n < 1){//形参的异常检查
- return -1;//返回异常值-1
- }
- for(int i = 1;i<=n;i++){
- sum = sum * i;
- }
- return sum;
- }

- //求n的阶乘递归写法
- #include <stdio.h>
- int fac(int n);
-
- int main(void){
- int m = 0;
- printf("请输入m的值:");
- scanf("%d\n",&m);
- printf("%d\n",fac(m));
- return 0;
- }
-
-
- int fac(int n){
-
- if(n < 1){
- return -1;
- }else if(n == 1){
- return 1;
- }else{
- return n*fac(n-1);
- }
- }

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

1.在同一个作用域内,不能出现相同的标识符,同一个作用域内不能重复定义变量名
2.一个标识符不能提示属于两个作用域,使用就近原则
- #include <stdio.h>
-
- int c = 10;//c的作用域是文件作用域,全局变量
- void fun(int b);
-
- int main(void){
- int a = 10;//a的作用域是函数作用域
- //int a = 20;//这样会报错,重复定义了a
- a = 20;
- { //语句块作用域
-
- int a = 20;//在这里定义a不会报错,此处a的作用域和上面的a不是同一个作用域
- int j = 0;
- j = 50;
- }
- return 0;
- }
-
- int fun(int b){//函数名和返回值属于文件作用域,函数的参数以及函数体属于函数作用域
- //a = 30;//此处报错,上面定义了a为整型,a的作用域是上面的主函数,不在该函数的适用范围
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。