易百教程

函数定义

函数的一般形式如下所示:

Return_type  Function_name(参数1, 参数2, ...,参数n)
{
   // 在函数内要执行的语句
}

如果函数体中没有语句,则返回类型(Return_type)必须为void
调用函数的一般形式是以下表达式:

Function_name(参数1, 参数2, ...,参数n)

函数的名称(Function_name)可以是C语言中的任何合法名称,它不能是保留字,也不能与其他函数的名称相同。
函数参数在函数头中定义,并且是调用函数时指定的参数的占位符。Return_type指定函数返回的值的类型。
return语句提供退出函数的方法,是否要返回什么数据。最简单的形式是return语句:

return;

这种形式的return语句用于返回类型已声明为void的函数中。例如:

void display(int a){
    printf("a = %d", a);
    return;
}

return语句的更一般形式是:

return expression;

示例代码:

int sum(int a, int b){   
    return (a + b);
}

以下示例代码,演示如何使用函数计算平均值。

#define __STDC_WANT_LIB_EXT1__ 1
#include <stdio.h>
#define MAX_COUNT 50

// 用于计算数组元素之和的函数
// n是数组x中的元素数量
double Sum(double x[], size_t n)
{
    double sum = 0.0;
    for (size_t i = 0; i < n; ++i)
        sum += x[i];

    return sum;
}

// 用于计算数组元素平均值的函数
double Average(double x[], size_t n)
{
    return Sum(x, n) / n;
}

// 读入数据项并存储在数据数组中的函数
// 该函数返回存储的项目数量
size_t GetData(double *data, size_t max_count)
{
    size_t nValues = 0;
    printf("您要输入多少个值 (不能超过 %zd)? ", max_count);
    scanf_s("%zd", &nValues);
    if (nValues > max_count)
    {
        printf("超出最大数量,将读取设置最多为 %zd 个元素.", max_count);
        nValues = max_count;
    }
    for (size_t i = 0; i < nValues; ++i)
        scanf_s("%lf", &data[i]);

    return nValues;
}

// 主程序 - 执行总是从这里开始
int main(void)
{
    double samples[MAX_COUNT] = { 0.0 };
    size_t sampleCount = GetData(samples, MAX_COUNT);
    double average = Average(samples, sampleCount);
    printf("您输入的值的平均值是: %.2lf\n", average);

    system("pause");
    return 0;
}

执行上面示例代码,得到以下结果:

您要输入多少个值 (不能超过 50)? 8
88
85
90
98
99
94
78
77
您输入的值的平均值是: 88.63