C语言输出杨辉三角(思路简单,适合大学生宝宝们)

本文详细介绍了如何用C语言生成杨辉三角,包括使用二维数组存储数据,通过循环计算并打印出对角线元素,以及自定义行列数的实现方法。重点在于展示了如何通过递推关系计算非对角线元素。
摘要由CSDN通过智能技术生成

1.什么是杨辉三角

在计算机科学和数学领域,杨辉三角是一种具有广泛应用的数列。它以中国南宋数学家杨辉的名字命名,展示了一个二项式系数构成的三角形阵列。在这个三角形中,每一行的数字都是前一行相邻两数之和。杨辉三角不仅在组合数学中有重要应用,还可以用来解决许多实际问题,如计算排列、组合等。

在C语言中,我们可以使用循环结构和数组来实现杨辉三角的打印。本文将详细介绍如何使用C语言实现杨辉三角的生成,帮助读者掌握这一基本算法,并在实际编程中灵活运用。

简答来说:每个数等于它上方两数之和。

 2.思路

本文将使用二维数组来实现杨辉三角:

定义一个二维数组(这里以5行5列为例),使用for循环将所有元素赋值为1,只输出对角线一半的元素

图例:

然后,从第3行,第1列开始的元素的值为     a[i][j]=a[i-1][j-1]+a[i-1][j];   

 到这里整个杨辉三角已经出来了,仅需要在最后使用for循环在每一行打相应数量的空格即可

3.实现

#include<stdio.h> 
void main(){
	int i,j,a[5][5];
	
	for(i=0;i<5;i++){
		for(j=0;j<5;j++){
			a[i][j]=1;
		}
	}
	
	for(i=2;i<5;i++){
		for(j=1;j<i;j++){
			a[i][j]=a[i-1][j-1]+a[i-1][j];
		}
	}
	 
	for(i=0;i<5;i++){
		for(j=0;j<5-i-1;j++){
			printf(" ");
		}
		for(j=0;j<=i;j++){
			printf("%d ",a[i][j]);
		}
		printf("\n");
	}
} 

 文字解读

  1. 定义一个二维数组a[5][5],用于存储杨辉三角的数据。
  2. 使用两层循环,将数组a的所有元素初始化为1。
  3. 使用两层循环,计算杨辉三角的其他元素。从第三行开始,每个元素的值等于它上方的两个相邻元素的和。具体来说,a[i][j] = a[i-1][j-1] + a[i-1][j]。
  4. 使用两层循环,打印出杨辉三角。外层循环控制行数,内层循环分别控制每行的空格和数字。空格的数量为5 - i - 1,数字的数量为i + 1。

4.自定义行列数的杨辉三角: 

实现原理及思路本质相同,仅需要修改循环次数即可(自行参考即可)

#include<stdio.h> 
void main(){
	int i,j,n;
	scanf("%d",&n);
	int a[n][n];
	for(i=0;i<n;i++){
		for(j=0;j<=i;j++){
			a[i][j]=1;
		}
	}
	for(i=2;i<n;i++){
		for(j=1;j<i;j++){
			a[i][j]=a[i-1][j-1]+a[i-1][j];
		}
	}
	for(i=0;i<n;i++){
		for(j=0;j<n-i-1;j++){
			printf(" ");
		}
		for(j=0;j<=i;j++){
			printf("%d ",a[i][j]);
		}
		printf("\n");
	}
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值