函数的定义、调用与说明
x
y
z
#include "cmath"
#include "iostream"
void main()
{float a,b,c,d,e,f,g,p,s1,s2,s3,s;
cin>>a>>b>>c>>d>>e>>f>>g;
p=(a+b+c)/2;
s1=sqrt(p*(p-a)*(p-b)*(p-c));
p=(c+d+e)/2;
s2=sqrt(p*(p-c)*(p-d)*(p-e));
p=(e+f+g)/2;
s3=sqrt(p*(p-e)*(p-f)*(p-g));
s=s1+s2+s3;
cout<<s<<endl;
}
能否优化?
函数
完成特定功能的程序段,由用户定义或系统定义。
函数用途:使得同一功能(程序段)能够在不同位置多次反复执行,实现程序模块化。
一、函数
程序由函数构成,每个程序有且只有一个
main主函数
函数定义:由函数头和函数体构成
类型标识符函数名(形式参数表)
{
语句序列
}
若无返回值,写void
若无参数,写void
是被初始化的内部变量,寿命和可见性仅限于函数内部
float area(float x, float y, float z)
{ float c,s ;
c = (x + y + z)/2;
s = sqrt(c*(c-x) * (c-y) * (c-z));
return s;
}
函数头
#include "cmath"
#include "iostream"
float area(float x, float y, float z)
{ float c,s ;
c = (x + y + z)/2;
s = sqrt(c*(c-x) * (c-y) * (c-z));
return ;
}
s
s
void main()
{ float a,b,c,d,e,f,g,s;
cin>>a>>b>>c>>d>>e>>f>>g;
s=area( )
a,
b,
c
+area( )
c,
d,
e
+area( )
e,
f,
g
形式参数
a,
c
c,
d,
e
e,
f,
g
b,
cout<<s<<endl;
}
函数具有相对独立的功能
函数之间通过参数(输入)
和返回值(输出)来联系
使用函数有利于代码重用,
提高开发效率
二、函数的定义
函数类型函数名(形式参数类型表)
{函数体}
int max(int x,int y)
{
int z;
if(x>y) z=x; else z=y;
return z;
}
void main()
{ int a,b,c,m;
cin>>a>>b>>c;
m=max(a, );
m=max(c,m);
cout<<m<<endl;
}
函数的定义
a
b
b
函数的调用
函数调用在前,定义在后,则须对函数进行说
明,函数说明可放在函数调用之前所在的函数
内,也可以放在源文件开头、函数的外部。
函数说明和函数定义在返回值类型、函数名和参数表上必须要完全一致。
三、函数说明
函数类型函数名(形式参数类型表);
四、函数的调用
调用前先声明函数原型:
在调用函数中,或程序文件中所有函数之外,按如下形式说明:
类型标识符被调用函数名(含类型说明的形参表);
函数调用
函数名(实参列表)
嵌套调用
函数可以嵌套调用,但不允许嵌套定义。
函数名(实在参数表)
实参与形参的个数、位置与类型必须一致。可是
同类型的常量、变量或表达式。
调用的形式可以是表达式,也可以是语句。
函数定义中的形参只有当发生函数调用时,才
被分配内存单元。
四、函数的调用
#include ""
void main()
{ int a,b,c;
int max(int x,int y);
cin>>a>>b;
函数声明
c=max(a,b);
函数调用
cout<<c<<endl;
}
int max(int x,int y)
{ return x>y?x:y ; }
函数定义
int max(int,int);
【例1 】编一程序,输出如右图形。
void pic(int n)
{
}
for(int i=0;i<n;i++)
{
setw(10-i);
for(int j=0;j<2*i+1;j++)
cout<<"*";
cout<<endl;
}
void main()
{ pic(4);
pic(6);
}
#
大学c 函数的定义、调用与说明课件 来自淘豆网www.taodocs.com转载请标明出处.