作业比赛编号 : 2994 - 【CSPtch-Jing】循环1 | 找数
🔍 C++ 找数速查
固定范围内找数 · 多个输入中找数一、在固定范围内找数
💡 核心思路:用
for 循环遍历 x ~ y 之间的每一个数 i,每次判断 i 是不是要找的数。
1.1 遍历示意(x=5,y=20)
在 5~20 之间找出某个特定的数,例如找
13
5
6
7
8
⋯
13
⬅ 找到!
⋯
20
1.2 模板代码
for (int i = x; i <= y; i++) { if (判断 i 是不是要找的数) { // i 就是要找的数 } }
⚠️ 关键点:
for 循环负责遍历,if 负责判断,两者搭配完成"逐一查找"的任务。
1.3 常见写法示例
▶ 例 1:找出 5~20 之间所有的偶数
for (int i = 5; i <= 20; i++) { if (i % 2 == 0) { cout << i << endl; } }
▶ 例 2:找出 5~20 之间第一个能被 3 整除的数
for (int i = 5; i <= 20; i++) { if (i % 3 == 0) { cout << i << endl; break; // 找到第一个就退出循环 } }
▶ 例 3:找出 5~20 之间能被 4 整除且大于 10 的数
for (int i = 5; i <= 20; i++) { if (i % 4 == 0 && i > 10) { cout << i << endl; } }
◆ ◆ ◆
二、在多个输入的数中找数
💡 场景:先输入一个整数
n 表示要输入的数的个数,然后输入 n 个数,从中找出符合条件的数。
2.1 模板代码
int n, a; cin >> n; for (int i = 1; i <= n; i++) { cin >> a; // 每轮循环输入一个数 if (判断 a 是不是要找的数) { // a 就是要找的数 } }
2.2 执行步骤
- 输入整数
n,表示接下来要输入n个数 - 进入 for 循环,从
1到n共执行n次 - 每次循环:先
cin >> a输入一个数 - 用
if判断这个a是否满足条件 - 满足条件则执行相应操作(如输出、计数等)
2.3 常见写法示例
▶ 例 1:从输入的 n 个数中找出所有的正数
int n, a; cin >> n; for (int i = 1; i <= n; i++) { cin >> a; if (a > 0) { cout << a << endl; } }
▶ 例 2:从输入的 n 个数中找出等于 100 的数(只输出一次)
int n, a; cin >> n; for (int i = 1; i <= n; i++) { cin >> a; if (a == 100) { cout << "找到了!" << endl; break; // 找到就退出 } }
▶ 例 3:从输入的 n 个数中找出最大值
int n, a; cin >> n; int max = -999999; // ① 假设一个很小的初始值 for (int i = 1; i <= n; i++) { cin >> a; if (a > max) // ② 当前数比 max 大就更新 { max = a; } } cout << max;
◆ ◆ ◆
三、两种找数方式对比
① 固定范围内找数
遍历对象:循环变量 i
数据来源:循环生成
for (i = x; i <= y; i++) { if (判断 i ...) }
② 输入多个数中找数
遍历对象:输入的数 a
数据来源:cin >> a
for (i = 1; i <= n; i++) { cin >> a; if (判断 a ...) }
💡 两种写法的核心区别只有一个:数据从哪里来?
• 固定范围 →
• 多次输入 →
剩下的"判断 + 处理"逻辑完全一样!
• 固定范围 →
i 本身就是数据,由循环生成• 多次输入 →
a 是数据,由 cin 读入剩下的"判断 + 处理"逻辑完全一样!
⚠️ 易错提醒:多次输入时,
cin >> a; 必须写在 if 判断之前,否则 a 没有值,无法判断!
