函数的一般形式如下所示:
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