C++ 竞赛入门

开始编程

完成第一次本地编译、运行和在线提交。

开始编程

本节学会什么

  • 确认终端中的 GNU C++ 编译器可以使用
  • 创建 .cpp 文件,完成编译和运行
  • 在洛谷提交一次程序,读懂最常见的评测结果

为什么需要它

学习语法之前,先要有一条能自己走通的路:写下代码、让编译器检查、运行程序、提交到评测机。之后遇到每个新知识点,都能立刻验证,而不是只在纸上“觉得自己懂了”。

本书的标准环境是 NOI Linux 或 Ubuntu 兼容环境,使用终端中的 GNU C++17 编译器。Windows 和 macOS 也能学习 C++,但本节只需保证能在终端运行相同的 g++ 命令;安装方式请按自己的系统查阅对应指引。

最小可运行示例

先在终端确认编译器已经安装:

g++ --version

能看到版本信息后,创建 main.cpp,输入下面的代码。暂时不必理解每一行,下一篇会逐个认识它们。

#include <iostream>

int main() {
    std::cout << "Hello, CppBook!\n";
    return 0;
}

main.cpp 所在目录执行:

g++ -std=c++17 -Wall -Wextra main.cpp -o main
./main

第一条命令把源代码编译成可运行文件 main;第二条命令运行它。屏幕应输出:

Hello, CppBook!

关键过程与易错点

  • .cpp 是 C++ 源文件的常用后缀。命令中的 main.cpp 必须与实际文件名一致。
  • -std=c++17 固定本书使用的语言标准。-Wall -Wextra 会提示一些容易忽略的问题;警告不一定阻止编译,但值得读完。
  • ./main 中的 ./ 表示“运行当前目录中的 main”。不要只输入 main
  • 洛谷提交时选择 C++17,粘贴完整代码并提交。AC 表示答案通过;WA 表示答案不对;CE 表示无法编译;RE 表示运行时出错;TLE 表示超时。
  • 编译失败时,先读最靠前的一条报错,再检查那一行附近的括号、引号和分号。一次修一个问题,重新编译。

动手检查

把输出改成你的名字和一句英文,每句各占一行。重新执行编译和运行命令,确认改动真的出现在终端中。

然后打开 洛谷 P1000:超级玛丽游戏,选择 C++17,提交题目要求的完整输出。第一次提交后,记录评测结果;若不是 AC,先按提示定位问题,再修改一次。

立即练习

难度 题目 题解 训练目标
基础 洛谷 P1000:超级玛丽游戏 题解 完成一次精确输出和在线提交。
巩固 洛谷 P1001:A+B Problem 题解 将一份完整 C++ 程序提交到评测机,观察输入输出格式。