最标准的杨辉三角和一般的杨辉三角

1、最标准的杨辉三角

/*
编写程序打印杨辉三角形
		1             变形 1 0 0 0
	1        1			   1 1 0 0
1       2      1		   1 2 1 0
   。。。。。。			   1 3 3 1
 思路:
	我们定义一个二维数组,所有元素先初始化为0
	给数组的第1列和对角线元素赋值为1
	其余元素a[i][j]=a[i-1][j-1]+a[i-1][j]
	输出这个二维数组的下三角
	*/
//杨辉三角 如此标准 
#include<stdio.h>
#include<stdlib.h>
#define N 5
int main()
{
	int a[N][N]={0};//全为0
	//初始化二维数组 
	for(int i=0;i<N;i++)
	{
		for(int j=0;j<N;j++)
		{
			if(j==0 || i==j)//注意是j==0而不是i==0 
			{
				a[i][j]=1;
				//下面两句与上面等价 
				//a[i][i]=1;
				//a[i][0]=1;
			}
			else
			{
				a[i][j]=a[i-1][j-1]+a[i-1][j];
			}
		//	printf("%-8d",a[i][j]);//直接边赋值边打印 
		}
		//printf("\n");
	 }
	 
	 
	 for(int i=0;i<N;i++)
	 {
	 	printf("%*d",30-i*2,a[i][0]);//打印第一列 ,是*2,这里必须是下面控制字符的一半,才能落在中间的位置,代表每一行第一个数字与行的最前面的间隔字符 
		 //这里的步长必须是下面的一半,才能落在 中间,这里30是一个随机的数字 
/*	 	
		1                  1 0 0 0
	1        1			   1 1 0 0
1       2      1		   1 2 1 0
*/
	 	for(int j=1;j<=i;j++)//之所以从j=1开始循环 ,因为第一列已经输出,要提取出来控制每行与行首的间隔 
	 	{
	 		printf("%4d",a[i][j]);//%4d代表4个字符的宽度 ,如果这里改为%6d,则上面改为30-i*3 
		}
		 printf("\n");
		 
	  } 
	  //getchar();
	  system("pause") ;
}


二、一般的杨辉三角

/*
编写程序打印杨辉三角形
		1             变形 1 0 0 0
	1        1			   1 1 0 0
1       2      1		   1 2 1 0
   。。。。。。			   1 3 3 1
 思路:
	我们定义一个二维数组,所有元素先初始化为0
	给数组的第1列和对角线元素赋值为1
	其余元素a[i][j]=a[i-1][j-1]+a[i-1][j]
	输出这个二维数组的下三角
*/
#include<stdio.h>
int main()
{
	int a[4][4]={0};
	printf("全部初始化为0\n");
	for(int i=0;i<4;i++)
	{
		for(int j=0;j<4;j++)
		{
			printf("%-6d",a[i][j]);
		}
		printf("\n");
	} 
	for(int i=0;i<4;i++)
	{
		for(int j=0;j<4;j++)
		{
			if(i==j || j==0)
			{
				a[i][j]=1;
				//下面两句与上面等价 
				//a[i][i]=1;
				//a[i][0]=1;	
			}
			else
			{
				a[i][j]=a[i-1][j-1]+a[i-1][j];
			}

		}
	}
	//输出杨辉三角
	for(int i=0;i<4;i++)
	{
		for(int j=0;j<=i;j++)//j<4的话结果先前赋值为0的全变为随机的数了 
		{
			printf("%-6d",a[i][j]);
		}
		printf("\n");
	} 
	
	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绝地反击T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值