编程中的函数(function)一般是若干语句的集合。我们也可以将其称作“子过程(subroutine)”。在编程中,如果有一些重复的过程,我们可以将其提取出来,形成一个函数。函数可以接收若干值,这叫做函数的参数。函数也可以返回某个值,这叫做函数的返回值。
函数常用一个特殊的数据类型 void
,来表示这个函数没有返回值。
此时如果想结束函数可以写 return;
。
//格式
返回值类型 函数名(参数列表);
//声明一个名字叫 f,接受两个 int 型参数,返回一个 int 型返回值的函数
int f(int, int);
//格式
返回值类型 函数名(参数列表)
{
}
//实现函数 f,返回第一个参数的第二个参数次幂
int f(int x, int y)
{
int res = 1;
for (int i = 1; i <= y; i++)
res *= x;
return res;
}
函数的声明与实现一起组成了函数的定义。
一般情况下,可以忽略声明,直接写函数的实现。但此时就需要注意函数定义的先后顺序了
统计质数个数
#include <bits/stdc++.h>
using namespace std;
bool isP(int x){
if (x < 2)
return false;
for (int i = 2; i * i <= x; i++)
if (x % i == 0)
return false;
return true;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
//输入
int n;
cin >> n;
//统计
int cnt = 0;
for (int i = 2; i <= n; i++)
if (isP(i))
cnt++;
//输出
cout << cnt << "\n";
return 0;
}
声明+实现模式
#include <bits/stdc++.h>
using namespace std;
bool isP(int); //声明后,函数的实现位置就可以放在 main 函数后面了
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
//输入
int n;
cin >> n;
//统计
int cnt = 0;
for (int i = 2; i <= n; i++)
if (isP(i))
cnt++;
//输出
cout << cnt << "\n";
return 0;
}
bool isP(int x){
if (x < 2)
return 0;
for (int i = 2; i * i <= x; i++)
if (x % i == 0)
return false;
return true;
}