C语言实现打印杨辉三角
杨辉三角如下图所示:
从图中可以看出杨辉三角中的数据有以下特点:
1.第0列及对角线上的所有元素都为1
2.其它位置的元素为上一行与该元素同列及前一列的元素相加的结果
根据上述杨辉三角中数据的特点,我们可以编程实现杨辉三角:
#include<stdio.h>
void PrintYangHui(int k)
{
int i, j, array[20][20]; //二维数组array用于存储杨辉三角
for (i = 0; i < k; i++) //给杨辉三角的每一行赋值
{
for (j = 0; j <= i; j++)
{
if (j == 0 || j == i) //第0列和主对角线上的所有元素都为1
{
array[i][j] = 1;
}
else
{
array[i][j] = array[i - 1][j] + array[i - 1][j - 1]; //其它位置的元素为上一行与该元素同列及前一列的元素相加的结果
}
}
}
for (i = 0; i < k; i++) //按行输出杨辉三角
{
for (j = 0; j <= i; j++)
{
printf("%6d", array[i][j]);
}
printf("\n");
}
}
int main()
{
int n;
while (1)
{
printf("请输入杨辉三角的行数(1-20):");
scanf_s("%d", &n);
PrintYangHui(n);
}
return 0;
}
程序运行截图如下: