C语言杨辉三角代码详解(超级详细,真的不进来看看吗?)

杨辉三角:是二项式系数在三角形中的一种几何排列。它的两条斜边都是1,中间数字等于它肩上数字之和。

就像这样:

那么,如何用C语言写出杨辉三角呢?

思路

1、定义一个二维数组,赋初值为1,这里以四行四列举例

1111
1111
1111
1111

2、只输出左下角(第1行,1列……第n行,n列)。

1
11
111
1111

3、处理中间数据:从第3行第2列开始,当前数=上一行的数+上一行前面的数。

1
11
121
1331

4、每行之前加不等的空格,使其居中对齐。

1
11
121
1331

代码(此处以9行9列举例)

#include<stdio.h>
int main()
{
	int data[9][9];//定义一个9行9列的数组
	for (int i = 0; i < 9; i++)
	{
		for (int j = 0; j < 9; j++)
			data[i][j] = 1;
	}//将数组中的所有数字赋值为1,如思路中1
	for (int i = 1; i < 9; i++)
	{
		for (int j = 1; j < i; j++)
			data[i][j] =data[i-1][j]+data[i - 1][j - 1];//当前数=上一行的数+上一行前面的数
	}//处理中间数据,如思路中3
	for (int i = 0; i < 9; i++)
	{
		for (int k = 0; k < 26 -  6*i / 2; k++)
			printf(" ");//使数据居中显示,如思路中4
		for (int j = 0; j <= i; j++)//j<=i表示仅输出左下角数据,如思路中2
			printf("%6d", data[i][j]);
		printf("\n");//输出数组所有数据
	}
	return 0;
}

小细节:

1、计算机中记数是从0开始,所以要表示第1行和第1列时,int i=0;   int j=0;

2、在使数据居中显示时, i/2 是因为居中只需左边加空格,6*i/2是因为输出时%6d

3、在输出数组所有数据时,用  "%6d" (%d表示输出的数为整形,6表示该数在输出时宽度至少为6位)。大家可以尝试将6换成其它数字,看看有什么不同。

运行

 操作环境:Visual Studio2019

通往成功的道路不止一条,大家可以尝试用其它方法写出杨辉三角。

今天你学会了吗?觉得有用就点个赞吧,拜拜~

  • 24
    点赞
  • 50
    收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
评论 7

打赏作者

醒醒起来学习啦

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值