C语言学习笔记:通过二维数组打印杨辉三角形

首先我们要知道杨辉三角形是什么:

杨辉三角形的构造规则:

第一行:只有一个数字1。

后续行:从第二行开始,每一行的第一个和最后一个数字都是1。其余位置的数字是它正上方和左上方两个数字的和。

通过图片可以看出,杨辉三角的行数与列数是相等的;且从第三行开始有了不为1的数字,所以我们可以想到在第二行之前的二维数组内都是1,第二行以后二维数组中,每一行的部分,首位为1,其他数则是上一行的数字和上一行左边的数字的和,所以我们可以写出这部分代码:

在代码主函数内,我们首先声明一个用来控制杨辉三角行数的变量,这里用n;用户输入想要的行数,通过scanf函数赋值给n;然后我们再声明一个二维数组,因为每行首尾都是1,所以我们就可以给 m00,m10m11,以及mi0和mii赋值1。

我们通过一次嵌套的if循环来控制赋值,外层循环 i 来控制行数,内层循环则给每行内的数字赋值,mij = mi - 1j - 1 + mi - 1j

赋值后再通过嵌套循环进行打印,i为打印行数, j为每行的列数,因为i从0开始,0行打印1个;1行打印2个,所以j的判断范围就是 j<i+1时打印,我们再每次外层循环执行完一次后打印一个换行符就可以了。因为要打印的工整一些,打印数组时可以留一个空格。

相关推荐
RainCity5 天前
Java Swing 自定义组件库分享(十二)
java·笔记·后端
LinXunFeng12 天前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
通信小呆呆16 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick16 天前
自动对焦学习-3
人工智能·学习·计算机视觉
Daisy Lee16 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Alsn8616 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e16 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨16 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
闪闪发亮的小星星16 天前
高斯光以及高斯光公式解释
笔记
cqbzcsq16 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息