函数
定义
函数类型 函数名(形参列表)
{
函数体}
说明
- 函数名需符合标识符的命名规则,一般体现函数的功能
- 形参是函数接受调用着像函数传值的主要途径
- 形参形式
类型 形参1,类型 形参2,....,类型 形参n
- 定义时应分别给出每一个形参的类型
- 有多个形参,用逗号隔开,也可以没有形参
- 形参形式
- 函数体由语句、分程序组成
- 函数体中不允许再嵌套定义函数
- 函数的类型就是函数返回值的数据类型
- 函数通过return语句返回一个值给调用它的函数
- 函数返回值的类型与函数类型最好一致。若不一致,转换为函数的类型。
#include<iostream>
using namespace std; //使用std命名空间
int f(int x)
{
float b = x + 3.5;
return b;
}
void main()
{
cout << f(2) << endl; //5,转化函数的int形
}
问题:编写函数,输出以“*”组成的两个金字塔形状,共五层
#include<iostream>
#include <iomanip> //标识setw()
using namespace std; //使用std命名空间
void pic()
{
for (int i = 0; i < 5; i++)
{
cout << setw(10 - i);
for (int j = 0; j < 2*i+1; j++)
{
cout << "*";
}
cout << endl;
}
return;
}
void main()
{
pic(); //这里的调用是语句,无返回值
pic();
system("pause");
}
注:函数类型为void,函数可以没有返回值。
函数调用
函数名(实参列表)
问题:求整型中a,d,c中最大的数字
#include<iostream>
#include <iomanip>
using namespace std; //使用std命名空间
int getmax(int x,int y)
{
int z;
if (x > y)
z = x;
else
z = y;
return z;
}
void main()
{
int a, b, c, m, n;
cin >> a >> b >> c;
m = getmax(a, b); //实参与函数定义时形参个数类型次序要一一对应 这里的调用形式是表达式 有返回值
n = getmax(m, c);
cout << n << endl;
system("pause");
}
函数调用与返回过程
函数嵌套调用
问题:求正整数m,n的最大公约数和最小公倍数
#include<iostream>
#include <iomanip>
using namespace std; //使用std命名空间
int gcd(int x,int y) //最大公因数
{
while (int r = x%y)
{
x = y;
y = r;
}
return y;
}
int sct(int m, int n) //最小公倍数
{
return(m * n / gcd(m, n)); //函数嵌套
}
void main()
{
int m, n;
cin >> m >> n;
if (n>m)
{
int t = m;
m = n;
n = t;
}
cout << gcd(m,n) << endl;
cout << sct(m,n) << endl;
system("pause");
}
函数嵌套调用与返回过程
函数说明
如果函数定义在调用之后,必须要对函数进行说明
函数类型 函数名(形参列表)