信奥AC之路-第一级-A学段
-
第一课 开发环境与基础输出4 主题|小节
-
第二课 算数运算符6 主题|小节
-
第三课 输入与运算3 主题|小节
-
第四课 数值操作4 主题|小节
-
第五课 表达式与运算符3 主题|小节
-
第六课 三目运算与双分支(缺导语+本课目标)2 主题|小节
-
第七课 多分支结构(缺导语+本课目标)1 主题|小节
-
第八课 多if语句1 主题|小节
-
第九课 三种分支结构的比较1 主题|小节
-
第十课 巩固学习分支结构1 主题|小节
-
第十一课 switch与复合语句3 主题|小节
-
第十二课 while循环2 主题|小节
-
第十三课 while循环的简单条件输出1 主题|小节
-
第十四课 while循环的输入序列处理1 主题|小节
-
第十五课 while循环的复杂条件输出2 主题|小节
-
第十六课 while循环与数据统计1 主题|小节
-
第十七课 for循环结构3 主题|小节
-
第十八课 for循环的输入序列处理)1 主题|小节
-
第十九课 深入探索for循环2 主题|小节
-
第二十课 三种循环的对比2 主题|小节
-
第二十一课 程序调试(一)3 主题|小节
-
第二十二课 调试工具的使用2 主题|小节
-
第二十三课 综合复习2 主题|小节
-
第二十四课 学习评估1 主题|小节
“接下来我们来做一些更有趣的数据统计!”
🔬 **实验24:求平均值**
“`
描述:
帮小朋友们计算一组数的平均值,输入-1表示输入结束。
输入:
一组数字,以-1结束
输出:
这组数的平均值
样例输入:
85 92 78 95 -1
样例输出:
平均值是:87.5
解题思路:
1. 用sum记录总和,count记录数字个数
2. 循环输入数字,直到输入-1
3. 每输入一个数字(不是-1):
– sum加上这个数
– count加1
4. 最后用sum除以count得到平均值
“`
“`cpp
#include
using namespace std;
int main() {
int num, count = 0;
double sum = 0;
cout << "请输入一组数(输入-1结束):" << endl;
while(true) {
cin >> num;
if(num == -1) break; // 输入-1时结束
sum += num; // 累加数字
count++; // 计数加1
}
if(count > 0) {
cout << "平均值是:" << sum/count << endl;
}
return 0;
}
```
🔬 **实验25:最大公约数**
```
描述:
小明和小红在学习最大公约数,让我们用循环来帮他们解决这个问题!
输入:
两个正整数a和b
输出:
这两个数的最大公约数
样例输入:
24 36
样例输出:
最大公约数是:12
解题思路:
1. 使用辗转相除法(欧几里得算法)
2. 让较大的数除以较小的数
3. 如果余数为0,较小的数就是最大公约数
4. 否则,用较小的数和余数继续计算
辗转相除法(欧几里得算法)算法步骤:
(1). 初始化:设两个正整数为a和b,且a > b。
(2). 除法运算:用a除以b,得到余数r(0 < r < b)。
(3). 迭代:如果r不为0,则将b的值赋给a,将r的值赋给b,返回第二步继续计算;如果r为0,则b即为两数的最大公约数。
(4). 结束:重复上述步骤,直到余数为0为止。
算法示例
例如,计算252和198的最大公约数:
- 252 = 1 × 198 + 54(商为1,余数为54)
- 198 = 3 × 54 + 36(商为3,余数为36)
- 54 = 1 × 36 + 18(商为1,余数为18)
- 36 = 2 × 18 + 0(商为2,余数为0)
因此,252和198的最大公约数是18。
```
```cpp
#include
using namespace std;
int main() {
int a, b;
cout << "请输入两个正整数:";
cin >> a >> b;
while(b != 0) { // 当余数不为0时继续循环
int temp = b; // 保存除数
b = a % b; // 计算余数
a = temp; // 除数变为被除数
}
cout << "最大公约数是:" << a << endl;
return 0;
}
```
🔬 **实验26:数字特征统计**
```
描述:
统计一个区间内有多少个特殊的数(个位为5或8的数)。
输入:
两个正整数m和n(m < n)
输出:
m到n之间个位数为5或8的数的个数
样例输入:
10 30
样例输出:
符合条件的数有:15 18 25 28
共找到4个数
解题思路:
1. 遍历m到n的每个数
2. 用取余运算判断个位数
3. 统计满足条件的数的个数
4. 同时输出这些数
```
```cpp
#include
using namespace std;
int main() {
int m, n;
cout << "请输入两个数m和n(m < n):";
cin >> m >> n;
int count = 0;
cout << "符合条件的数有:";
int i = m;
while(i <= n) {
if(i % 10 == 5 || i % 10 == 8) {
cout << i << " ";
count++;
}
i++;
}
cout << "\n共找到" << count << "个数" << endl;
return 0;
}
```