先创建一个二维数组
初始化杨辉三角的基本格式,及图形的最里侧和最外侧都是1这一规律
基本格式输出结果
输出结果
#include <stdio.h>
#define ROW 10
int main()
{
int arr[ROW][ROW] = { 0 };
int j = 0;
int x = 0;
//初始杨辉三角的基本格式,及图形的最里侧和最外侧都是1这一规律
for (int i = 0; i < ROW; i++)
{
arr[i][0] = 1;
arr[i][i] = 1;
}
//因为前两行都是1没有0,所以跳过前两行
for (int i = 2; i < ROW; i++)
{
j = 0;
x = 0;
//用z去确认0的位置
for (int z = 0; ; z++)
{
if (arr[i][z] == 0 && x < 2)
{
//j去确认上一行不是0的位置进行相加
//赋值给本行0的位置
arr[i][z] = arr[i - 1][j] + arr[i - 1][j + 1];
j++;
}
//因为1是图形的边界,通过x去记录碰到1的次数
//当x=2时代表触碰到边界从而跳出循环
else if (x == 2)
break;
else
x++;
}
}
for (int i = 0; i < ROW; i++)
{;
for (int j = 0; j < ROW; j++)
{
if (arr[i][j] != 0)
{
printf("%d ", arr[i][j]);
}
}
printf("\n");
}
return 0;
}