一 函数定义

01 函数分为库函数和自定义函数两种

函数一般格式:

函数返回值类型 函数名(数据类型 参数1, 数据类型 参数2,……..)

{

函数体;

}

*函数若不需要返回值类型,则用void表示

*函数的标志是括号,不管有没有参数,括号都要存在

*定义函数时,右括号后不应加分号

*不要在函数列表中再次定义参数列表中出现的变量

*多个参数之间用逗号隔开,即使数据类型相同,也不能同时声明,即数据类型和参数必须成对出现

 

// 求表达式k!/(M!+N!)的值

#include <stdio.h>
double fact(int f)
{
    int i;
    double r = 1;
    for (i=1; i<f;i++)
    {
        r = r*i;
        
        return r;
    }
}
int main()
{
    int k,m,n;
    double f1,f2,f3;
    
    printf("请输入三个整数:\n");
    scanf("%d%d%d",&k,&m,&n);
    
    f1 = fact(k);
    f2 = fact(m);
    f3 = fact(n);
    printf("k!/(M!+N!)=%f\n",f1/(f2+f3));
    
    
}

 

二 函数调用

01函数调用的一般形式:

函数名(实际参数表) 如果被调用函数没有参数,则“实际参数表可以为空”

02 函数间的参数传递

C语言的规则很简单,C语言函数的所有参数均以“传值调用”方式进行传递,且参数传递方向永远是从实参传递到形参。

03 函数的返回值

return 表达式;

return语句的功能是立即结束当前函数的执行,并返回主调函数中。

 

// 输入两个整数,计算其平均值,要求用函数实现平均值的计算

#include <stdio.h>
double average(int x,int y);
int main()
{
    int a,b;
    double result;
    printf("请输入两个整数:\n");
    scanf("%d%d",&a,&b);
    
    result = average(a,b);
    printf("%d和%d的平均值为%f\n",a,b,result);
    
    
    
    
    return 0;
}

double average(int x,int y)
{
    double ave;
    ave = (x+y)/2;
    return ave;
}