c语言实现输出杨辉三角

article/2025/9/23 12:12:36

杨辉三角

  • 方法1:
  • 方法2:
  • 方法3:

要求:
输出以下的杨辉三角形(要求输出10行)(12分)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10  5 1
: : : : : :

方法1:

#include<stdio.h>#define  row 10
#define  col 10int main () {int  i,j;int arr[row][col];for(i=0;i< row ;i++) {     //初始化 每行第一个和最后一个元素值都为1arr[i][i] = 1;arr[i][0] = 1;}for(i = 2;i<row;i++){    //从第三行开始for(j = 1;j<i;j++) {arr[i][j]=arr[i-1][j-1]+arr[i-1][j]; //每个数等于它上方两数之和。}}for(i = 0;i<row;i++){for(j = 0;j<=i;j++) {printf("%5d",arr[i][j]);}printf("\n");}return 0;}

直接说上面的思路:
对于这种杨辉三角,每一行的第一个元素和每一行的最后一行元素都是1,而且其实从第2行就开始有的一个规律就是:“从第二列开始,每个位置元素的值等于上一行元素前一列的值和上一行元素同一列的值之和。”,自然而言我们就想到了使用二维数组。

输出结果:
在这里插入图片描述

方法2:

#include<stdio.h>#define  row 10
#define  col 10int main () {int  i,j;int arr[row][col]={};for(i = 0;i<row;i++){    //从第三行开始arr[i][0] = 1;for(j = 1;j<=i;j++) {arr[i][j]=arr[i-1][j-1]+arr[i-1][j]; //每个数等于它上方两数之和。}}for(i = 0;i<row;i++){for(j = 0;j<=i;j++) {printf("%5d",arr[i][j]);}printf("\n");}return 0;}

刚刚我们说了每一行的最后一个元素也是符合规律的,所以方法一种的arr[i][i] = 1;就没有必要写了,然后 arr[i][0] = 1;又可以放在下面的循环中,所以直接省去了一个循环,在效率上得到了很强的提升。注意,那么<此时二维数组的定义的格式:int arr[row][col]={};而不能是int arr[row][col];,因为加上{}就相当于有了数组的初始化,数组中所有的元素都是0而已,如果不加{}就相当于没有初始化,数组中的值都不确定,所以对于求每一行最后一个值的时候就开始出错。/font>

在这里插入图片描述

方法3:

使用一维数组也是可以的:

#include<stdio.h>
int main()
{ int i,j,n=0,a[17]={0,1},l,r;while(n<1 || n>16){printf("请输入杨辉三角形的行数:");scanf("%d",&n);}for(i=1;i<=n;i++){l=0;for(j=1;j<=i;j++){r=a[j];a[j]=l+r;   /*每个数是上面两数之和*/l=r;printf("%5d",a[j]);   /*输出杨辉三角*/}printf("\n");}
}

在这里插入图片描述


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

相关文章

[C语言]杨辉三角形:编程计算并输出打印前n行杨辉三角形。请使用数组实现。

输入 输入一个正整数n&#xff08;0 < n < 20&#xff09;。 输出 输出杨辉三角形的前n行&#xff0c;相邻两项之间用一个空格隔开。 输入示例 7 输出示例 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 数据范围 输入输出均为int范围的整数 先…

C语言输出正三角形

输出这个正三角形 分析&#xff1a;行数为五行&#xff0c;然后确定每行需要输出的空格数和*号数即可 int i, j, k;for(i 1; i<5; i){/* 观察每行的空格数量 */for(j 0 ;j < 4-i ;j) {printf(" "); //输出空格}/* 观察每行*号的数量 */for(k 0; k <…

用C语言打印杨辉三角(可以根据输入的行数输出相应的杨辉三角)

C语言实现打印杨辉三角 杨辉三角如下图所示&#xff1a; 从图中可以看出杨辉三角中的数据有以下特点&#xff1a; 1.第0列及对角线上的所有元素都为1 2.其它位置的元素为上一行与该元素同列及前一列的元素相加的结果 根据上述杨辉三角中数据的特点&#xff0c;我们可以编程实…

C语言:输出杨辉三角

C语言学习记录之输出杨辉三角形 #include <stdio.h> #define N 10 //输出前十行 int main() {int arr[N][N];for (int i 0;i < N;i) { arr[i][0] 1; // 首先给每行第一个和最后一个赋值1arr[i][i] 1;}// 从第三行起&#xff0c;除了每行的1以外&#xff0c…

C++语言 输出杨辉三角形 要求输出10行。

C语言 输出杨辉三角形 要求输出10行。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 #include <iostream> #include <iomanip> using namespace std; int main(){const int n11;int i,j,a[n][n];for (i1;i<n;i){a[i][i]1;a[i][1]1;}for (…

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

要想用C语言实现杨辉三角形的输出&#xff0c;就首先需要明白杨辉三角形是怎么来的。 首先我们规定每一行第一个和最后数一个为1&#xff0c;那么从第一行开始就只有一个1;第二行就有两个1&#xff0c;从第三行开始就体现出杨辉三角形的特点了&#xff0c;即就是——每一个等于…

输出以下的杨辉三角形 要求输出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