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) 是一次函数调用,它的结果可像普通整数一样参与输出或运算。

时序图:main 调用 square,square 计算后返回结果,main 输出结果

关键过程与易错点

  • 定义由返回类型、函数名、参数列表和函数体组成:int square(int x) { ... }
  • return 立即结束函数,并把一个符合返回类型的值交回调用处。
  • main 也是函数,只是程序从它开始执行。
  • 函数名应表示任务,例如 is_evenmaximum,而不是 func1
  • 函数定义通常写在 main 前;若写在后面,需要先声明,初学阶段可先统一写在前面。

动手检查

写一个 int triple(int x),返回 3 * x。在 main 中读入两个整数,分别调用并输出结果。

再把 square(n) + square(n + 1) 写成一个表达式,确认函数调用本身就是一个有值的表达式。

立即练习

难度 题目 题解 训练目标
基础 洛谷 P5721:数字直角三角形 题解 把一行输出的工作封装为函数。
巩固 洛谷 P5735:距离函数 题解 编写有参数、有返回值的计算函数。