函数(Function) ★★★★★★★
函数是指能够实现某种功能的一段代码
一、函数的定义语法
1、返回值类型 int float double char
2、函数名(形参类型 行参变量名1,形参类型 行参变量名2)
3、{
函数体语句;
}
★★
定义形参变量时,每个形参变量名前必须出现形参类型
1、库函数:类库
2、用户自定义函数
★★★
一个C程序无论包含了多少函数,在正常情况下总是从 main() 函数开始执行,main() 函数结束。
二、函数调用
1. 有返回值的函数的定义
函数定义:
#include<stdio.h>
//函数定义
int jiecheng(int n) //形参:函数定义时的参数 n, 参数传递:形参 = 实参 n = 5
{
int sum = 1, i = 1; //sum:累乘积5 i:每个乘数
for(i=1; i<=n; i++)
{
sum = sum*i;
}
return sum; //给 jiecheng() 函数设置一个返回值 sum,当函数执行到第一条 return,会自动返回到调用语句的地方
}
函数调用:
int main()
{
int k;
//函数调用
k = jiecheng(5); //实参:函数调用时的参数 5
printf("%d\n", k);
return 0;
}
注意:return 只能返回一个值,不能同时返回多个值
2. 无返回值的函数的定义
函数定义:
#include<stdio.h>
//函数定义
void jiecheng(int n) //void 声明该函数无返回值
{
int sum = 1, i = 1; //sum:累乘积5 i:每个乘数
for(i=1; i<=n; i++)
{
sum = sum*i;
}
printf("%d\n", sum);
}
函数调用:
int main()
{
//函数调用
jiecheng(4); //无返回值的函数的调用语法: 函数名(实参)
return 0;
}
注意:只有将函数的定义语句放在调用语句之后时,才需要在函数调用之前书写函数声明
#include<stdio.h>
void jiecheng(int n); //函数声明
//或者 void jiecheng(int ) 只能省略函数的形参变量名
//主函数
int main()
{
jiecheng(4); //函数调用语句
return 0;
}
//函数定义
void jiecheng(int n)
{
int i = 1, sum = 1;
for(i=1; i<=n; i++)
{
sum = sum*i;
}
printf("%d\n", sum);
}
★★★★
注意事项:
1、函数名前的返回值类型必须与 return 后的类型保持一致
2、函数的每个形参类型与每个实参的类型保持一致,形参的个数必须与实参的个数保持一致
3、实参可以使任意的常量、变量、表达式
示例:
1、z = 1 + 1/3 + (1*2)/(3*5) + (1*2*3)/(3*5*7) + ……,直到最后一个分数的值小于 0.0005 为止,求 2z 的值
#include<stdio.h>
int main()
{
double sum = 1, fz = 1, fm = 1, i = 1, j = 3; //i:每个分子中的乘数 j:每个分母中的乘数
while(fz/fm>=0.0005)
{
fz = fz*i; //计算分子大小
fm = fm*j; //计算分母
sum = sum + fz/fm; //计算 sum
i++; //i自增1
j+=2; //j自增2
}
printf("%f\n", 2*sum);
return 0;
}
2、输出 Fibonacci 数列 0 ,1, 1,2,3,5,8,13,21……,直到最后一项的值刚好大于或等于1000为止
#include<stdio.h>
int main()
{
int f1 = 0, f2 = 1, f =f1 + f2;
printf("%d %d %d ", f1, f2, f);
while(f<1000)
{
f1 = f2;
f2 = f;
f = f1 + f2;
printf("%d\n", f);
}
return 0;
}