1.题目
使用杨辉三角打印至控制台。
2.代码
#include<stdio.h>
//#define N 14
int main(void)
{
int i, j, k, n = 0, a[14][14];//定义二维数组
while (n<=0||n>=13)
{
printf("请输入要打印的行数:");
scanf("%d", &n);
}
printf("%d行杨辉三角如下:\n", n);
for (i = 1; i <= n; i++)
{
a[i][1] = a[i][i] = 1;//每行第一列元素全为1 对角线元素全为1
}
for (i = 3; i <= n; i++)//for循环范围从第三行开始到第n行
{
for (j = 2; j <= i-1; j++)//for循环范围从第2列开始到该行行数减一列为止
{
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];//第i行j列等于第i-1行j-1列的值加上第i-1行j列的值
}
}
for (i = 1; i <= n; i++)
{
for (k = 0; k < n-i; k++)
{
printf(" ");//空格占位
}
for (j = 1; j <= i; j++)
{
printf("%6d", a[i][j]);//打印所有数字
}
printf("\n");
}
return 0;
}
3.个人见解
关于杨辉三角的概念,参照百度百科的杨辉三角即可。
对于杨辉三角,通过观察得知,杨辉三角的两边均为1。
而且是依次向中间递增的,在最中间的位置达到最大值。
如若,该行为双数,则最大值有两个;单数,则最大值仅有一个。
所以,第一个for循环就是需要,在程序中表达出来就是当i=1时,a[i][1]=a[i][i]=1。第一位和最后一位均为1。
而从第三行开始,中间的数就开始进行了变化。而变化规律为每个数等于它上方的两数之和。
故而,添加第二个for循环。在其中添加——a[i][j] = a[i - 1][j - 1] + a[i - 1][j] 。
对于第三个for循环,仅仅只是作为判断,判断其如果是数则添加,不是数则空格输出。
4.输出结果截图

本文详细介绍了一种使用C语言编程实现杨辉三角的方法。文章首先介绍了杨辉三角的基本概念,然后通过三个for循环实现了杨辉三角的生成和打印。第一个for循环用于初始化每行的首尾元素为1,第二个for循环用于计算中间元素的值,第三个for循环用于打印结果。此外,还提供了一个完整的代码示例,以及输出结果的截图。


被折叠的 条评论
为什么被折叠?



