【输出N行杨辉三角形】两种输出方式(直角三角形型和等腰三角形型)C语言

article/2025/9/23 12:41:29

要想用C语言实现杨辉三角形的输出,就首先需要明白杨辉三角形是怎么来的。

首先我们规定每一行第一个和最后数一个为1,那么从第一行开始就只有一个1;第二行就有两个1,从第三行开始就体现出杨辉三角形的特点了,即就是——每一个等于它上方两个数的和。就像下图一样:

 既然明白了杨辉三角形的底层逻辑,要想使用C语言来实现它那么针对这种元素比较多的又比较又规律的首先就要想到使用数组了。

我们使用一个二维数组实现杨辉三角形,如下是一个6×6的矩阵(我们可以用二维数组表示它)

 除了特殊的第一列,从第二行第二列的元素开始,它的值就是它头顶上元素的值加上左上角的值

编写代码:

#include<stdio.h>
#define N  10		//需要显示的行数 
int main(void){int i,j;int a[N][N]={1};		//定义一个二维数组并将第一个元素置1,其余置0 for(i=0,j=0;i<N;i++){a[i][j]=1;}//给数组放置杨辉三角形数 for(i=1;i<N;i++){		//从第1行开始到最后一行 for(j=1;j<N;j++){	//从第1列开始到最后一列 a[i][j]=a[i-1][j-1]+a[i-1][j];	//根据规律计算该元素的值 }}//输出杨辉三角for(i=0;i<N;i++){for(j=0;j<N;j++)if(a[i][j]!=0)printf("%-5d ",a[i][j]);    //-5表示左对齐,输出数据域宽为5printf("\n");}return 0;
} 

运行结果如下(输出了十行)

看完代码可能有人会问:既然你说了要规定每一行第一个和最后数一个为1,你怎么只定义了第一列为1呢。我觉得你可以再看一下本文开头的第二张图,就可以明白每行末尾的1我们是如何定义的了。当然你也可以直接定义。

—————————————以上是第一种输出方式(直三角形型)—————————————

—————————————以下是第二种输出方式(等腰三角形型)————————————

编写代码:

#include<stdio.h>
#define N  10		//需要显示的行数 
int main(void){int i,j,k;int a[N][N]={1};		//定义一个二维数组并将第一个元素置1,其余置0 for(i=0,j=0;i<N;i++){a[i][j]=1;}for(i=1;i<N;i++){for(j=1;j<N;j++){a[i][j]=a[i-1][j-1]+a[i-1][j];	//根据规律计算该元素的值 }}//输出等腰三角形型杨辉三角for(i=0;i<N;i++){//控制每行前面空格数 for(k=0;k<N-i;k++)printf("   ");	//元素输出 for(j=0;j<N;j++)if(a[i][j]!=0)printf("%6d",a[i][j]);	//默认右对齐,域宽为6 printf("\n");}return 0;
} 

其实只需要将第一次的代码中的杨辉三角输出的地方添加控制每行首个元素前的空格就行了。

效果如下:

完~~谢谢!


http://chatgpt.dhexx.cn/article/L2SyNYUF.shtml

相关文章

输出以下的杨辉三角形 要求输出10行 C语言

C语言 输出杨辉三角形 要求输出10行。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 c程序设计(第四版) #include <stdio.h> #define N 10 int main() { int i,j,a[N][N];for (i0;i<N;i){a[i][i]1;a[i][0]1;}for (i2;i<N;i)for (j1;j<i-…

C语言输出杨辉三角形

C语言输出杨辉三角形 IDE&#xff1a;DEV-C 编程思想&#xff1a; 利用一维数组存储第0行数据。 例如 int Sum[ ] { 0,0,0,0,1,0,0,0,0}; 元素1表示初始时最中心元素。其位置由所想要输出的行数控制。 然后利用for循环求下一行数组元素值。具体做法如下&#xff1a; for(int …

C语言输出杨辉三角

目录&#xff1a;一、杨辉三角的解读。二、主要思路。三、代码及结果展示。 一、杨辉三角就是除了前两行外&#xff0c;后一行的数由前一行的同一位置的数与前一位数之和&#xff0c;但是唯一确定的是以1开头以1结尾就比如这样的&#xff1a; 前五行的杨辉三角 二、思路 1、先定…

C语言 输出正三角形图形

1. 原代码如下 #include<stdio.h> int main(){int row, col, i;char c 32;for(row 1; row < 6; row){for(i 5-row; i > 0; i--)printf("%c", c);for(col 1; col < 2*row-1; col)printf("*");printf("\n");}return 0; } 2. …

编写C程序输出杨辉三角

介绍&#xff1a; 杨辉三角&#xff0c;是二项式系数在三角形中的一种几何排列。在欧洲&#xff0c;这个表叫做帕斯卡三角形。帕斯卡&#xff08;1623----1662&#xff09;是在1654年发现这一规律的&#xff0c;比杨辉要迟393年&#xff0c;比贾宪迟600年。杨辉三角是中国古代数…

static,final修饰变量

static&#xff0c;final修饰符&#xff1a; 静态变量&#xff1a;&#xff08;由static修饰的变量&#xff09;&#xff0c;其共享一个内存空间&#xff0c;即在被调用运算的时候会被累积&#xff0c;除非重新开始程序&#xff1b;静态变量能被静态方法和一般方法所用&#xf…

final修饰类、变量、方法

final 修饰类、方法、变量&#xff0c;表示不可变的 final 修饰变量&#xff1a;不可变&#xff0c;必须赋初值。 final成员变量&#xff1a;必须由程序员显示的指定初始值。 成员变量随着类或对象的初始化而初始化。当执行静态初始化块时可以对类变量赋初始值&#xff1b;当执…

static,final,static final修饰变量到底有什么区别?

平时在项目中可能经常会用到一些常量&#xff0c;一般都定义成static final的&#xff0c;有时候可能会突然想到&#xff0c;到底staitc&#xff0c;final&#xff0c;static final定义的变量到底有什么关系呢&#xff1f; 通过以下例子一起看一下&#xff1a; /*** Descript…

final修饰成员变量和局部变量的区别

昨晚12点以后&#xff0c;跟人讨论问题&#xff0c;无意中聊到了final可以修饰的类型以及修饰后所具备的特点&#xff0c;可以详见 java基础问题101问(javaSE阶段知识汇总) 聊到final修饰成员变量和局部变量有什么区别时&#xff0c;只是隐约记得大概&#xff0c;没有十足把握&…

final修饰变量、方法、类举例

第一种&#xff0c;final修饰变量 经过final修饰过的STR2"2"就是普通的字符串连接&#xff0c;不再重新new&#xff0c;而str3"2"相当于new了一个新的String对象。 第二中&#xff0c;final修饰方法 父类中经过final修饰过的方法&#xff0c;在子类中不能…

final修饰的变量

被final修饰的实例变量必须显式指定初始值,而且只能在如下3个位置指定初始值. 1.定义final实例变量时指定初始值; 2.在非静态初始化块中为final实例变量指定初始值; 3.在构造器中为final实例变量指定初始值. 对于普通实例变量,Java程序可以对它执行默认的初始化,也就是将实…

Java中的final变量 final修饰变量 final修饰方法 final修饰类 final和String的关系

目录 引言final修饰变量final修饰变量&#xff0c;不可再改变量的值final修饰对象&#xff0c;能否修改对象属性值final全局静态变量 final修饰方法final修饰类重要总结final关键字的好处final的重要知识点 引言 在开发的过程中&#xff0c;经常会使用String类来处理字符串相关…

Java中final修饰变量

一:final修饰的变量即成为常量&#xff0c;只能赋值一次&#xff0c;但是final所修饰局部变量和 员变量有所不同。 (1)final修饰的局部变量必须使用之前被赋值一次才能使用 (2)final修饰的成员变量在声明时没有赋值的叫“空白final变量”,空白final变量必须在构造器方法或静态代…

微信服务商-小程序支付-商户传入的appid参数不正确,请联系商户处理

报错&#xff1a;商户传入的appid参数不正确&#xff0c;请联系商户处理。 处理方式&#xff1a; 1、 2、需要在商户号&#xff0c;配置小程序的APPID https://pay.weixin.qq.com/static/pay_setting/appid_protocol.shtml

支付宝APP支付之查看支付宝商户ID

2019独角兽企业重金招聘Python工程师标准>>> 1、登录支付宝蚂蚁金服开放平台 2、查看账号详情&#xff0c;选择合作伙伴管理&#xff0c;账户管理&#xff0c;查看角色身份&#xff0c;此处的PID就是商户ID 3、点击秘钥管理&#xff0c;可查看绑定的相关应用及其APP…

iOS-微信支付商户支付下单id非法

最近在APP中WKWebView中调用微信支付的时候&#xff0c;一直报商户支付下单id非法。看了n边微信文档&#xff0c;度娘了n次-----仍未解决。因为安卓的支付是没有问题的所以就跟安卓兄弟要了最终调用微信的字符串&#xff1a; weixin://wap/pay?prepayid%3Dwx19165520991244d92…

微信企业付款 ”错误码:NO_AUTH,错误信息:此IP地址不允许调用接口,如有需要请登录微信支付商户平台更改配置“报错的处理办法

提示”错误码:NO_AUTH,错误信息:此IP地址不允许调用接口,如有需要请登录微信支付商户平台更改配置“ 快速解决问题!!! 解说一下这个IP&#xff1a;这个IP是你发起支付的服务器外网IP&#xff0c;跟用户发起提现IP没关系&#xff0c;所以这里配置的是服务器IP。 这是微信官方给…

微信外部浏览器支付遇到:支付场景非法、appid 未关联paysignkey、商户支付下单id非法 等问题

正常流程用户支付完成后会返回至发起支付的页面&#xff0c;如需返回至指定页面&#xff0c;则可以在MWEB_URL后拼接上redirect_url参数&#xff0c;来指定回调页面。如&#xff0c;您希望用户支付完成后跳转至https://www.wechatpay.com.cn&#xff0c;则可以做如下处理&#…

微信的商户单号和交易单号_教你获取支付宝和微信的订单号、商户单号,涨知识了...

生活中常会用到支付宝和微信交易&#xff0c;交易完成后会用到「订单号」「商户单号」&#xff0c;需要注意的是微信的 「交易单号」就 等同于「订单号」&#xff0c;「订单号」和「商户单号」一般在同一个地方就能找到&#xff01;&#xff01;&#xff01; 获取支付宝「订单号…

微信支付商户平台,企业付款,企业向个人付款接口总结

这几天做项目&#xff0c;有个需求&#xff0c;是微信用户需要把公众号中赚的钱提现&#xff0c;于是查资料找到了微信商户平台中的高级业务&#xff1a;企业付款。 官方文档&#xff1a;https://pay.weixin.qq.com/wiki/doc/api/mch_pay.php?chapter14_1 为了以后方便看&am…