📚 本周C++编程课笔记:for循环练习
主题:信奥一本通for循环练习题 + GESP一级2403考点解析
🔍 一、for循环回顾:"数字流水线"
for循环就像一条自动化的流水线:
cpp
for (int i = 1; i <= 5; i++) {
cout << "第" << i << "个产品完成!" << endl;
}
🔹 三个关键部件:
- 起点 :
int i = 1(从1开始计数) - 终点判断 :
i <= 5(到5就停止) - 步进器 :
i++(每次+1)
🧩 二、本周闯关题目解析
🟢 1:均值(1060题)
任务 :算一堆数字的"平均分"
核心技巧:
- 用for循环读入每个数
- 用
sum变量当"储蓄罐"累加 - 最后算:
平均值 = 总储蓄 / 人数
cpp
// 小例子:算3个数的平均
double sum = 0;
for (int i = 1; i <= 3; i++) {
int num;
cin >> num;
sum += num; // 存钱进储蓄罐
}
cout << fixed << setprecision(4) << sum / 3;
🟡 2:最高分(1062题)
任务 :找出一列分数中的"冠军"
核心技巧:
- 设一个
maxScore变量当"擂主" - 每个数字来"挑战",比擂主大就替换!
cpp
int maxScore = 0; // 初始擂主是0分
for (int i = 1; i <= n; i++) {
int score;
cin >> score;
if (score > maxScore) maxScore = score; // 挑战成功!
}
🔵 3:最大跨度值(1063题)
任务 :找"最高分"和"最低分"的差距
双擂主策略:
cpp
int maxNum = -1000, minNum = 1000; // 夸张的初始值
for (int i = 1; i <= n; i++) {
int num;
cin >> num;
if (num > maxNum) maxNum = num; // 最高分擂主
if (num < minNum) minNum = num; // 最低分擂主
}
cout << maxNum - minNum; // 跨度 = 最高 - 最低
🟠 4:奇数求和(1065题)
任务 :只加"单数"(1,3,5...)
奇偶判断口诀 :num % 2 == 1
cpp
int sum = 0;
for (int i = 1; i <= n; i++) {
int num;
cin >> num;
if (num % 2 == 1) sum += num; // 只存奇数
}
📘 三、GESP一级2403考点链接
这些题目正好对应GESP一级的两大考点:
🎯 考点1:循环处理数据序列
- GESP常考"输入n个数,求xx值"
- 解题模板:
cpp
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
// 这里处理每个数据
}
🎯 考点2:条件筛选与统计
- 比如"求满足条件的数和"
- 关键:在循环内加if判断
cpp
if (条件成立) {
// 执行操作
}
💡 四、小贴士
- 先画流程图:用纸笔画出"数据流动"再写代码
- 变量初始化 :
- 求和变量
sum = 0 - 最大值
max = 很小值 - 最小值
min = 很大值
- 求和变量
- 测试用例 :
- 输入
3 个成绩:90 80 70 - 手动算一遍,再对比程序输出
- 输入
🏆 五、本周任务
尝试用一个for循环同时解决:
- 计算总分
- 找出最高分
- 统计及格人数(≥60分)
提示:需要3个变量!
🌈 趣味总结
- for循环 = 数字小火车(一站站前进)
- sum变量 = 存钱罐(越存越多)
- max/min变量 = 擂主(不断被挑战)
- if判断 = 守门员(只放符合条件的通过)