C++ 竞赛入门
index
函数入门
本节学会什么
- 把一段有明确任务的代码写成函数
- 区分函数定义和函数调用
- 用返回值把计算结果交给调用处
为什么需要它
一段逻辑在程序中反复出现时,复制粘贴会让修改和排错越来越困难。函数为这段逻辑取一个名字,规定输入和输出;主程序只保留解决问题的步骤。
最小可运行示例
#include <iostream>
int square(int x) {
return x * x;
}
int main() {
int n;
std::cin >> n;
std::cout << square(n) << '\n';
return 0;
}
square 的任务是“给一个整数,返回它的平方”。square(n) 是一次函数调用,它的结果可像普通整数一样参与输出或运算。
关键过程与易错点
- 定义由返回类型、函数名、参数列表和函数体组成:
int square(int x) { ... }。 return立即结束函数,并把一个符合返回类型的值交回调用处。main也是函数,只是程序从它开始执行。- 函数名应表示任务,例如
is_even、maximum,而不是func1。 - 函数定义通常写在
main前;若写在后面,需要先声明,初学阶段可先统一写在前面。
动手检查
写一个 int triple(int x),返回 3 * x。在 main 中读入两个整数,分别调用并输出结果。
再把 square(n) + square(n + 1) 写成一个表达式,确认函数调用本身就是一个有值的表达式。
立即练习
| 难度 | 题目 | 题解 | 训练目标 |
|---|---|---|---|
| 基础 | 洛谷 P5721:数字直角三角形 | 题解 | 把一行输出的工作封装为函数。 |
| 巩固 | 洛谷 P5735:距离函数 | 题解 | 编写有参数、有返回值的计算函数。 |