- 0
- 0
- 约2.02千字
- 约 29页
- 2020-03-26 发布于浙江
- 举报
第三章 模块化程序设计;#include stdio.h
int max(int x, int y)
{
int z;
if (xy)
z=x;
else
z=y;
return(z);
}
void main( )
{
int a,b,c;
scanf(%d%d, a,b);
c=max(a, b);
printf(max=%d\n,c);
};函数-模块化程序设计的体现;3.1 模块化程序设计的思想;阶乘模块fac(n)的实现:
f = 1;
for ( i=1; i= n ; i++)
{
f = f * i;
};#include stdio.h//普通设计
void main()
{ int i, k, m, n;
float x, y, z;
scanf(%d%d%d, k, m, n);
x = 1; //fac(k)
for (i=1; i=k; i++)
x = x * i;
y = 1; //fac(m)
for (i=1; i=m; i++)
y = y * i;
z = 1; //fac(n)
for (i=1; i=n; i++)
z = z * i;
printf(%f\n, x/(y+z));
};3.2 函数定义;void main( )
{ int k, m, n;
float x, y, z;
scanf(%d%d%d, k, m, n);
x = fac(k);
y = fac(m);
z = fac(n);
printf(%f\n, x/(y+z));
};1、函数定义的形式:;④、参数(形参)列表:需说明参数的个数和类型,多个参数间用逗号间隔,也可以无参数,但括号不能省。;⑤、函数体:由左右花括号括起来的部分。包括说明部分和语句部分,是实现函数的核心部分说明部分:定义函数内除形参以外的其它变量等;语句部分:实现函数功能的执行语句;;C语言不允许在一个函数内定义另一个函数,即不能嵌套定义。所有函数在书写时都是平行的,通常写在main上方。;void main( )
{ int k, m, n;
float x, y, z;
scanf(%d%d%d, k, m, n);
x = fac(k);
y = fac(m);
z = fac(n);
printf(%f\n, x/(y+z));
};例:;3.3 函数调用(函数使用);3、函数调用的方式;3.3.2 函数间的参数传递;函数调用的说明;#include stdio.h
void sum(int x, int y, int z)
{
x=10; y=20; z=x+y;
printf(x=%d, y=%d, z=%d\n, x,y,z);
}
void main( )
{
int a=1, b=2, c=0;
sum(a, b, c);
printf(a=%d, b=%d, c=%d\n, a,b,c);
};定义函数时需要解决的问题:
有没有参数?即:需要从主调函数中传递数据吗?
参数的个数:
参数的类型:int、float、double、char或指针
是否有返回值?即:是否向主调函数返回计算结果?
返回值的类型:void?其它int、float?;3.3.3 函数的返回值; 函数值的类型与return语句中表达式的类型应一致;若不一致,则以函数类型为准(自动转换)。;例:输入圆的半径r,用自定义函数area实现圆的面积,并在主函数中输出最终的结果。
也可以这样思考:;编写函数的技巧:;sum函数:
有没有参数:有
参数的个数:2
参数的数据类型:float或int
是否有返回值:有
返回值的类型:float 或 int;例题:
编写函数sum,它的功能是计算a+|b|,a和b都要从主函数中输入,计算结果也要在主函数中输出。;例3.2 输入两个整数,计算其平均值。要求用函数实现平均值的计算。;使用函数计算 1+1/3+1/5+…+1/n(n为奇数)的和。其中,n是从键盘上随机输入的一个整数。;#include stdio.h
float fun(int n)
{
}
void main( )
{ int n;
printf(Input n:);
scanf(%d,n);
printf(%f\n,fun(n));
}
原创力文档

文档评论(0)