首页 > 其他分享 >用C语言打印杨辉三角形:**

用C语言打印杨辉三角形:**

时间:2024-07-23 20:25:15浏览次数:19  
标签:int 32 行第 打印 C语言 杨辉三角

用C语言打印杨辉三角形:

1.杨辉三角形规律:

在这里插入图片描述

1.每行数字左右对称,由1开始逐渐变大,然后变小,回到1。

2.第n行的数字个数等于n,第n行的第一个和最后一个数字都是1。

3.对于第i行,除首尾两个1之外,任意位置的数等于它肩上的两个数之和。即第i行第j个数等于第i-1行第j-1个数与第i-1行第j个数之和。

表达式可表示为:a[i][j] = a[i-1][j-1]+a[i-1][j]

2.打印杨辉三角形:

​ 在C语言中,实现杨辉三角形可以用嵌套循环来完成

#include <stdio.h>

int main(int argc, char *argv[])
{ 
    int n;//定义整形数据n,代表要打印的杨辉三角形行数
    printf("请输入要打印的杨辉三角形行数:");
    scanf("%d",&n);

    int a[32][32] = {0};//初始化二维数组,这里限制了最大打印行数为32
    int i,j;

    for(i = 0; i <n; i++){//外层for循环,用i对0到n-1进行遍历
        a[i][0] = 1;//先将每行第一个数字赋值为1
        
        for(j = 1; j < n-i; j++){//打印空格,空格为倒直角三角形,总共打印n-1行且每行空格依次递减
            printf("  ");//为使打印效果更美观,每次可用两个空格
        }
        for(j = 0; j <= i; j++){//内层for循环打印数字
            if(i == j){
                a[i][j] = 1;//将每行末尾数字赋值为0
            }else{
                a[i][j] = a[i-1][j-1]+a[i-1][j];//为中间数字赋值
            }
            printf("%-3d ",a[i][j]);//%-3d 设置左对齐,每个数字占用三个字符
        }
        printf("\n");//每行打印结束后记得换行
    }

    return 0;
} 

3.打印效果:

在这里插入图片描述

标签:int,32,行第,打印,C语言,杨辉三角
From: https://blog.csdn.net/2201_75349894/article/details/140645424

相关文章

  • C语言输入输出函数
    输入函数1.scanf函数:用于格式化输入。例如:scanf("%d",&num);用于读取一个整数并存储到变量num中。输出函数:   1.printf函数:    用于格式化输出。例如:printf("Thenumberis%d\n",num);会输出指定的字符串和变量num     的值。   ......
  • C语言100道基础拔高题(1)
    1.有1,2,3,4这几个数字,问能组成多少个互不相同且无重复数字的三位数?    解题思路:首先输出由这几个数字所组成的所有三位数,接着再设置条件,使其输出的三位数不重复,下面我们来看下源代码。值得注意的是:所以题目的代码都是作者自行编写,如有更好的思路或者代码的优化,还请......
  • C语言100道基础拔高题(2)
    1.求两个数的最小公倍数和最大公约数        解题思路:求最小公倍数可以通过两个数的积再除以最大公约数来计算。而最大公约数则可以通过辗转相除法(又名欧几里得算法)来得到。源代码如下:#include<stdio.h>intmain(){ //程序分析:最小公倍数=两个数的积除以......
  • C语言100基础拔高题(3)
    1.利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。                 解题思路:通过反复调用一个打印最后一个元素的函数,来实现此功能。源代码如下:#include<stdio.h>voidoposize(charstr[],intlen);intmain(){ //利用......
  • C语言程序设计第三讲:选择结构程序设计
    1.选择结构概述定义与重要性:选择结构使得程序可以根据不同的条件执行不同的代码段。2.if语句详解基本形式:if(表达式)语句;:当表达式为真时执行语句。基本形式示例:inta=10;if(a>5){printf("aisgreaterthan5\n");}扩展形式:if(表......
  • 【时时三省】(C语言基础)操作符
    山不在高,有仙则名。水不在深,有龙则灵。              ——csdn时时三省操作符~按(二进制)位取法把所有二进制位中数字,1变成0,0变成1比如把0按位取法a=0二进制:00000000000000000000000000000000把0变成111111111111111111111111111111111~a(补......
  • C语言 结构体——《跟老吕学C》
    C语言结构体——《跟老吕学C》C语言结构体一、C语言结构体的基本概念二、C语言结构体的定义与初始化1.结构体的定义2.结构体的初始化3.结构体的初始化(指定成员)4.结构体数组的初始化5.结构体指针的初始化6.注意事项三、C语言结构体的使用1.访问结构体的成员2.......
  • C语言分支循环语句
    写博客太麻烦了,感觉要等转完专业之后才会写得多一点目前我知道c的分支有if,switchIf 的语句结构大致如下:if(3==3//判断,0为假,非0为真){//判断结果为真之后,运行的表达式printf("nb");}if语句中判断相等要用“==”,“=”表示赋值。除此之外多个条件可用elseif,else。e......
  • C语言-栈和队列
    文章目录......
  • C语言知识大闯关之一维数组
    引言数组由数据类型相同的一系列的数据组成;-数组存放的是一个或多个数据,但是数组内元素的个数不能为零。-数组存放的元素类型是相同的。数组分为一维数组和多维数组;本章我们讲解的是一位数组。一维数组的创建和初始化一维数组创建C语言中,需要使用数组时,通过声明告......