C练习——杨辉三角

题目:

打印近似杨辉三角,行数n自选

百度找的杨辉三角,参考一下:

解析:

把它的全部元素左对齐,就可以看成近似杨辉三角的样子

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

......

每个数等于它上方两数之和

每行数字左右对称,由1开始逐渐变大

行数与列数相同,第n行有n列,首选二维数组,先给数组赋值,再打印数组

先搭元素为1的框架,每行第零列元素为1,每行末列元素为1

再根据每个数等于它上方两数之和,给其它元素赋值

逻辑:

先按规律给二维数组赋值,再打印所需数组元素

注意数组越界问题,N=n+2

参考代码:

cs 复制代码
// 打印杨辉三角,行数n自选
// 1

// 1  1

// 1  2  1

// 1  3  3  1
// ......
#define n 7  // n:1~16
#define N n+2
#include<stdio.h>

void init_arr(int arr[N][N])
{
    int i = 0;
    int j = 0;
    for (i = 1; i < N; i++)
    {
        arr[i][1] = 1; // 每行第1列为1
        for (j = 2; j <=i; j++)
        {
            arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
        }
    }
}

void print_arr(int arr[N][N])
{
    int i = 0;
    int j = 0;
    for (i = 1; i < N; i++)
    {
        for (j = 1; j <= i; j++)
        {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
}
int main()
{
    int arr[N][N] = { 0 };
    init_arr(arr);
    print_arr(arr);
    return 0;
}

运行结果:

相关推荐
老花眼猫1 小时前
编制椭圆旋转绘图函数
c语言·经验分享·青少年编程·课程设计
iCxhust4 小时前
微机原理实践教程(C语言篇)---A002流水灯
c语言·开发语言·单片机·嵌入式硬件·51单片机·课程设计·微机原理
qeen874 小时前
【数据结构】建堆的时间复杂度讨论与TOP-K问题
c语言·数据结构·c++·学习·
handler014 小时前
Linux 内核剖析:进程优先级、上下文切换与 O(1) 调度算法
linux·运维·c语言·开发语言·c++·笔记·算法
热心网友俣先生5 小时前
2026年第二十三届五一数学建模竞赛C题超详细解题思路+各问题可用模型推荐+部分模型结果展示
c语言·开发语言·数学建模
li1670902706 小时前
第二十七章:智能指针
c语言·数据结构·c++·visual studio
Aurorar0rua8 小时前
CS50 x 2024 Notes C - 07
c语言·学习方法
爱编码的小八嘎8 小时前
C语言完美演绎9-15
c语言
weixin_421725269 小时前
C语言常用字符串函数:长度、比较、拼接和查找
c语言·字符串函数·查找·比较·长度
yzq1991279 小时前
C语言#和##的用法(附带示例)
c语言·宏定义·预处理运算符·字符串化·标记连接