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;
}

运行结果:

相关推荐
下午见。16 分钟前
C语言结构体入门:定义、访问与传参全解析
c语言·笔记·学习
cs麦子1 小时前
C语言--函数(function)
c语言·开发语言
极智-9961 小时前
C语言编译器?【图文详解】Visual Studio安装配置编译运行C语言?C语言编译器下载安装?
c语言·visual studio·c语言编译器·c代码运行·visual studio下载·c编程·c语言下载
是苏浙1 小时前
零基础入门C语言之C语言实现数据结构之顺序表
c语言·开发语言·数据结构
代码雕刻家1 小时前
C语言中关于类型转换不匹配的解决方案
c语言·开发语言·算法
许长安3 小时前
c/c++ static关键字详解
c语言·c++·经验分享·笔记
逐步前行4 小时前
C数据结构--排序算法
c语言·数据结构·排序算法
许长安7 小时前
C/C++中的extern关键字详解
c语言·开发语言·c++·经验分享·笔记
奔跑吧邓邓子7 小时前
【C语言实战(71)】C语言进阶:树与图的奇妙数据之旅
c语言···开发实战
一袋米扛几楼988 小时前
【软件安全】C语言特性 (C Language Characteristics)
java·c语言·安全