上来先展示一下运行结果吧:
接下来就是分析过程,先来画图分析一番:
根据画图分析的结果,就可以编写代码了:
#include<stdio.h>
#define row 20 //定义行数常量,更改数值改变行数
#define col 20 //定义列数常量,更改数值改变列数
int main()
{
int arr[row][col] = { 0 }; // 初始化数组,并且元素都为0
int i = 0, j = 0;
// 设置和计算数组中的每个元素的值,数组的下标是从0开始
for (i = 0; i < row; i++)
{
for (j = 0; j < i; j++)
{
if (j == i) // 对角线的值设置为1
{
arr[i][j] = 1;
}
if (j == 0) // 数组第一列的值设置成1
{
arr[i][j] = 1;
}
if (i >= 2 && j >= 1) // 从第二行第一列开始是上一行的两个数的和
{
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
}
// 打印数组中的每个元素的值
for (i = 0; i < row; i++)
{
for (j = 0; j < i; j++)
{
printf("%5d ", arr[i][j]);
}
printf("\n");
}
return 0;
}