C语言基础-函数之成绩判断

函数

  • 一:什么是函数?
  • 二:为什么要函数调用
  • 三:如何定义一个函数
  • 四:如何调用一个函数
  • 五:形式参数
  • 六:形式参数和局部参数的差异
  • 七:举例:函数之成绩判断

一:什么是函数?

函数是一个功能模块,它把实现某个功能的代码包含起来,并起一个函数名,供别人调用。如printf函数,如system函数,是程序运行当中包装起来的一个步骤

二:为什么要函数调用

1:代码很好看
2:容易定位问题
3:可复用性强
4:分工

三:如何定义一个函数

1:返回值
2:形式参数
3:函数名
4:函数体-代码段

四:如何调用一个函数

1:函数名(实际参数)
2:函数名()

五:形式参数

void函数 代表返回值的类型是无类型,return 要写,不过return 后面不加变量

1:有点类似于变量点定义,所以写法也是类似于变量定义:
如:int a;形式参数作用域仅限于该函数。

2.它是一个变量,局部变量,有自己的空间。
3.空间的生存期:
> a.何时申请了该空间:当函数被调用的时候,才申请了该内存空间,才有了这个变量,同时这个空间内的数据被赋值成实际参数的值,函数调用把实际参数拷贝一份给形式参数。
b.什么时候释放该空间:函数执行结束后,该空间由内存管理单元自动回收(释放)。
但是调用函数带有参数,必须传参,传递的参数叫实际参数,对格式没有要求,对数据的类型严格要求!!!

六:形式参数和局部参数的差异

形式参数比局部参数运用起来更加灵活

七:举例:函数之成绩判断

#include
void tips()
{
        printf("$$$$$$$$$$$$$$$$$$\n");
        printf("$$$$$$$$$$$$$$$$$$\n");
        printf("$$请输入一种算法$$\n");
        printf("$$$$$$$$$$$$$$$$$$\n");
        printf("$$$$$$$$$$$$$$$$$$\n");
}
int add(int data1,int data2)
{
        int z;

        z = data1 + data2;

        return z;
}

int min(int data1,int data2)
{
        int z;

        z = data1 - data2;

        return z;
}

int mul(int data1,int data2)
{
        int z;

        z = data1 * data2;

        return z;
}

float chufa(int data1,int data2)
{
        float z;

        z = (float)data1 / data2;

        return z;
}
int tipsWhichCalc(char suanFa)
{
        switch(suanFa)
        {
                case '+':
                        printf("你输入了加法!\n ");

                        break;
                case '-':
                        printf("你输入了减法!\n ");

                        break;
                case '*':
                        printf("你输入了乘法!\n ");

                        break;
                case '/':
                        printf("你输入了除法!\n ");

                        break;

                default :
                        printf("算法错误!\n");
                        return -1;

                        break;
        }


}

void realCalc(int data1,int data2,char suanFa)
{
        switch(suanFa){
                case '+':
                        printf("两数相加的结果是:%d\n",add(data1,data2));

                        break;
                case '-':
                        printf("两数相减的结果是:%d\n",min(data1,data2));

                        break;
                case '*':
                        printf("两数相乘的结果是:%d\n",mul(data1,data2));

                        break;
                case '/':
                        printf("两数相除的结果是:%f\n",chufa(data1,data2));

                        break;
        }

}
int calc(char suanFa)
{
        int data1;
        int data2;
        int ret = 0;

        ret =  tipsWhichCalc(suanFa);
        if(ret == -1){
                      return -1;
        }

        printf("请输入第一个数据:\n");
        scanf("%d",&data1);
        printf("请输入第二个数据:\n");
        scanf("%d",&data2);

        realCalc(data1,data2,suanFa);

}
int main()
{
        int data1;
        int data2;
        int ret;
        float retChufa;
        char suanFa;
        int mark = 0;
        
        while(1)
        {
                tips();
                if(mark != 0)
                        getchar();//这里的作用是把输入data2以后的回车吸收掉,不想第一次进来的时候被调用,所以通过mark来控制

                mark = 1;
                scanf("%c",&suanFa);
                getchar();//回车也是一个字符,getchar函数用来获取一个字符,在这里的作用是把回车吸收掉

                 ret = calc(suanFa);
                 if(ret == -1){
                    printf("算法错误\n");
                    break;
                    }
        }

        return 0;

}

你可能感兴趣的:(C语言基础,c语言,开发语言)