杨辉三角形,相信大家都学习过,该如何用C语言来做它呢?
如下是其代码:
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int arr[30][30] = {0};
for (int i = 0; i < n; i++)
{
for (int j = 0; j <= i; j++)
{
if (j == 0 || j == i)
{
arr[i][j] = 1;
printf("%d ", arr[i][j]);
}
else
{
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
printf("%d ", arr[i][j]);
}
}
printf("\n");
}
return 0;
}
如下是其运行结果:
接下来讲一讲此代码的逻辑:
杨辉三角形的两边都是1,中间的元素是其上一行的紧挨的一列和左边一列元素的加和。
首先,我们需要有一个数组来存放数据,需要二维数组,因为有行,有列。两个for语句,第一个for语句控制行,里面的for语句控制列。我们可以打一个简单的代码看看效果。
可以看到,杨辉三角形的雏形已经有了。
接下来,就该录入杨辉三角形数据了。在开头就说了杨辉三角形的逻辑,我用俩个公式来表示:
就是说,两边都是1,中间的元素是其上一行的紧挨的一列和左边一列元素的加和。
代码如下:
for (int i = 0; i < n; i++)
{
for (int j = 0; j <= i; j++)
{
if (j == 0 || j == i)
{
arr[i][j] = 1;
}
else
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
}
printf("\n");
}
再加上printf,这个杨辉三角性就完成了,具体想要输出杨辉三角形的样式,由自己决定。以上就是本期内容。
更多推荐
C语言杨辉三角形代码
发布评论