- 机器人等级考试
C++ 趣味实验室:数字拆分、矩阵探秘、图形魔法课
- 2025-7-8 8:40:03 @
C++ 趣味编程小课堂
一、课程目标
通过几个有趣的小案例,学习用 C++ 解决问题,认识输入输出、循环、图形绘制,让大家像搭积木一样学会写简单代码,感受编程乐趣!
二、知识储备
- C++ 基础:知道
#include
引入工具库、using namespace std
简化代码,int main()
是程序入口。 - 逻辑概念:理解顺序执行、循环(重复做事)、条件判断(选情况做事 )。
三、案例实战
案例 1:拆分数字的“小零件”(分离整数数位)
需求:输入一个数,比如 123
,按个位、十位、百位拆成 3 2 1
输出。
代码实现(每行有详细注释,方便理解):
// 引入输入输出工具库,让程序能读入、输出内容
#include<iostream>
// 使用标准命名空间,简化代码里的写法
using namespace std;
int main() {
// 定义一个整数变量 n,用来存输入的数字
int n;
// 从键盘读入一个整数,存到 n 里
cin >> n;
// 当 n 不等于 0 时,重复做这些事(循环)
while (n != 0) {
// 取 n 的个位数字:用 % 10 可以拿到最后一位,比如 123%10 就是 3
cout << n % 10 << " ";
// 把 n 去掉个位数字:用 / 10 可以砍掉最后一位,比如 123/10 就变成 12
n = n / 10;
}
// 程序结束标志
return 0;
}
运行示例:
- 输入:
123
- 输出:
3 2 1
原理:用 %10
挖个位数字,用 /10
去掉个位,循环砍数字直到砍完,就拆分出所有数位啦!
案例 2:给矩阵“边缘”算总和(矩阵边缘元素求和)
需求:输入一个矩阵(表格数字),算第一行、最后一行、第一列、最后一列的数字总和。
代码实现(注释超详细):
// 引入输入输出工具库
#include<iostream>
using namespace std;
int main() {
// m 存矩阵行数,n 存矩阵列数
int m, n;
// 从键盘读入行数和列数
cin >> m >> n;
// cnt 用来累加边缘数字的和,初始设为 0
int cnt = 0;
// 外层循环:一行一行遍历(从第 1 行到第 m 行 )
for (int i = 1; i <= m; i++) {
// 内层循环:一列一列遍历(从第 1 列到第 n 列 )
for (int j = 1; j <= n; j++) {
// 临时变量 a,存当前读的数字
int a;
// 读入矩阵里的一个数字
cin >> a;
// 判断是不是边缘:第一行(i==1)、最后一行(i==m)、第一列(j==1)、最后一列(j==n)
if (i == 1 || i == m || j == 1 || j == n) {
// 是边缘就加到总和里
cnt = cnt + a;
}
}
}
// 输出边缘数字的总和
cout << cnt;
return 0;
}
运行示例:
输入(3 行 3 列矩阵):
3 3
3 4 1
3 7 1
2 0 1
输出:15
(第一行 3+4+1
+ 最后一行 2+0+1
+ 第一列多的 3
+ 最后一列多的 1
→ 总和 15 )
原理:用两层循环遍历每个数字,用 if
判断是不是边缘位置,是就把数字加到总和里!
案例 3:画“圆圆排排站”(图形绘制,简单版)
需求:弹出一个窗口,画几个圆形排排站,感受图形编程趣味!
代码实现(先装 graphics.h
图形库才能运行哦,比如用 Dev-C++ 软件):
// 引入图形绘制工具库,能弹出窗口、画图形
#include <graphics.h>
// 引入数学工具库(暂时用不上,但图形库常一起用 )
#include <math.h>
// 引入按键检测工具库,让程序等我们按按键再关闭
#include <conio.h>
using namespace std;
int main() {
// 定义窗口高度,这里设 1200 像素,让窗口长一点好放圆形
const int height = 1200;
// 初始化图形窗口:宽度 600 像素,高度用上面定义的 height
initgraph(600, height);
// 画圆形:circle(圆心X, 圆心Y, 半径)
// 第一个圆:Y 坐标是 1*height/4(把窗口高度分成 4 份,选第一份位置 )
circle(300, 1 * height / 4, 50);
// 第二个圆:Y 坐标是 2*height/4(第二份位置 )
circle(300, 2 * height / 4, 50);
// 第三个圆:Y 坐标是 3*height/4(第三份位置 )
circle(300, 3 * height / 4, 50);
// 让程序暂停,等我们按任意按键(不然窗口一闪就没啦 )
getch();
// 关闭图形窗口,释放资源
closegraph();
return 0;
}
运行效果:弹出一个窗口,里面有 3 个圆形垂直排开,按任意键窗口关闭。
原理:用 initgraph
开窗口,circle
画圆(参数是圆心坐标和半径 ),getch
让程序等我们按键,最后关窗口~
四、总结
- 拆分数字:用
%10
和/10
循环拆分数位,像剥洋葱一层一层剥! - 矩阵求和:两层循环遍历,
if
判断边缘位置,累加算总和~ - 图形绘制:用
graphics.h
开窗口、画图形,轻松实现可视化效果!
多改改代码里的数字(比如矩阵大小、圆形位置 ),看看效果咋变的,编程就是越玩越会哟!
0 条评论
目前还没有评论...