大家在初中or小学的时候就已经了解了杨辉三角,在欧洲,也叫帕斯卡三角形,如下所示
1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
...
现在,想要输入整数n,打印前n行,并输出每一行的和。
1. 二维数组
用C代码实现的时候,最简单的方法就是利用二维数组,根据 a [ i ] [ j ] = a [ i − 1 ] [ j − 1 ] + a [ i − 1 ] [ j ] a[i][j] = a[i-1][j-1] + a[i-1][j] a[i][j]=a[i−1][j−1]+a[i−1][j]进行更新,其中i代表行(或者高),j代表列。在C中利用数组,那么需要设置数组的长度,比如定义MAXSIZE 100,即最大为100行。代码如下
#include <stdio.h>
#define MAXSIZE 100
int pascal_tri_1(int n)
{
int a[MAXSIZE][MAXSIZE] = { 1 }; //杨辉三角数组
int sum_arr[MAXSIZE] = { 1 };
int h_ind;
//建表
for (int h = 2; h <= n; ++h) { //h为高度,第h行
int sum =

本文详细介绍了如何用C语言实现杨辉三角的三种方法:二维数组、指针+动态分配内存以及变长数组。分别分析了每种方法的优缺点,如二维数组浪费空间,指针方法可能导致错误,而变长数组通过结构体实现了一维数组的灵活应用。最终,通过n=5的实例验证了三种方法的正确性。
最低0.47元/天 解锁文章
5万+

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



