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;
}
程序运行截图如下: