C语言小程序 杨辉三角示例代码

下面我来为您详细讲解“C语言小程序 杨辉三角示例代码”的攻略。

什么是杨辉三角

杨辉三角,又称帕斯卡三角形,是二项式系数在三角形中的一种几何排列。它是中国古代数学的杰出研究成果之一,杨辉是唐朝末年、宋朝初年的一位著名数学家。

杨辉三角的规律是:每个数等于它上方两数之和。它的形状如下图所示:

       1
      1 1
     1 2 1
    1 3 3 1
   1 4 6 4 1
 1 5 10 10 5 1

杨辉三角实现方式

C 语言实现杨辉三角可以采用二维数组,也可以使用一维数组。

二维数组实现

二维数组的实现方式比较直观,可以将杨辉三角看成一个 n 行 n 列的矩阵,数组的第 i 行 j 列元素是杨辉三角中第 i 行的第 j 个数。

示例代码:

#include <stdio.h>
#define N 10

int main()
{
    int i, j;
    int triangle[N][N] = {0};

    for (i = 0; i < N; i++)
    {
        triangle[i][0] = 1;
        for (j = 1; j <= i; j++)
        {
            triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
        }
    }

    for (i = 0; i < N; i++)
    {
        for (j = 0; j <= i; j++)
        {
            printf("%5d", triangle[i][j]);
        }
        printf("\n");
    }

    return 0;
}

上述代码中,triangle 数组用来存储杨辉三角的数据,数组元素初值为 0。

外层循环是计算杨辉三角的行数 i,内层循环是计算杨辉三角中每一行的元素。

一维数组实现

一维数组的实现方式比较巧妙,可以利用杨辉三角的性质,每一行的最后一个元素都是 1,每个数等于上一行它的位置和前一个位置的数之和。

示例代码:

#include <stdio.h>
#define N 10

int main()
{
    int i, j;
    int triangle[N] = {1, 0};

    for (i = 1; i <= N; i++)
    {
        for (j = i; j >= 1; j--)
        {
            triangle[j] += triangle[j - 1];
        }
        for (j = 0; j < i; j++)
        {
            printf("%5d", triangle[j]);
        }
        printf("\n");
    }

    return 0;
}

上述代码中,triangle 数组用来存储杨辉三角的数据,数组元素初值为 1 和 0。

外层循环是计算杨辉三角的行数 i,内层循环是计算杨辉三角中每一行的元素。

示例说明

示例一

假如现在需要打印出杨辉三角的前五行,可以使用上面的二维数组实现方式。

将上面的示例代码中的 N 宏定义改为 5,编译运行代码,程序输出如下:

    1
    1   1
    1   2   1
    1   3   3   1
    1   4   6   4   1

示例二

假如现在需要打印出杨辉三角的前五行,可以使用上面的一维数组实现方式。

将上面的示例代码中的 N 宏定义改为 5,编译运行代码,程序输出如下:

    1
    1   1
    1   2   1
    1   3   3   1
    1   4   6   4   1

以上就是“C语言小程序 杨辉三角示例代码”的完整攻略,希望能够帮助到您。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言小程序 杨辉三角示例代码 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C语言关于文件的操作方法总结

    C语言关于文件的操作方法总结 文件操作是 C 语言中常用的功能之一。本文将综合介绍 C 语言操作文件的各种方法,包括打开文件、读取文件、写入文件、关闭文件,以及文件指针的使用。 打开文件 在 C 语言中,打开文件必须使用 fopen() 函数。这个函数有两个参数:文件名和打开模式。文件名是需要打开的文件名字符串,打开模式参数指定打开文件时的操作。 以下是一些…

    C 2023年5月23日
    00
  • CURL的学习和应用(附多线程实现)

    CURL的学习和应用(附多线程实现) 什么是CURL CURL是一个开源的命令行工具,可以用于向服务器发送HTTP、HTTPS、FTP请求,并且支持POST、PUT、GET等方法。CURL的优势在于简单易用、功能强大、支持多种协议。除此之外,CURL还提供了非常强大的LIBCURL库,可以在各种语言中实现HTTP请求。 CURL的安装 CURL的安装非常简单…

    C 2023年5月22日
    00
  • 利用C语言如何实现一些简单图形的打印

    我很乐意为您提供实现简单图形打印的攻略。 第一步:了解基本的图形打印原理 在利用C语言实现简单图形打印之前,我们需要先了解图形打印的基本原理。在C语言中,我们可以使用任何一种编程方式来打印图形,但是最常用的方法是使用ASCII码来实现。 ASCII码是一个包含了一些常见字符的标准编码系统。在ASCII码中,每个字符都有一个对应的数字,这个数字在C语言中可以通…

    C 2023年5月23日
    00
  • Vue-admin-template 报Uncaught (in promise) error问题及解决

    问题描述: 在使用 Vue-admin-template 开发项目时,如果使用路由时出现了以下报错,可能会导致页面无法正常加载: Uncaught (in promise) Error: Redirected when going from “/xxx” to “/xxx” via a navigation guard. 这个问题可能是由于路由中的钩子函数未…

    C 2023年5月22日
    00
  • 在Shell命令行处理JSON数据的方法

    在Shell命令行处理JSON数据的方法是非常常用的任务之一,下面是处理JSON数据的完整攻略: 1. 什么是JSON? JSON(JavaScript Object Notation)是一种常用的轻量级数据交换格式。可以理解为是一种数据结构,它由键值对构成,键和值之间使用:号连接。键值对中的项之间使用逗号分隔。大括号({})表示对象,中括号([])表示数组…

    C 2023年5月23日
    00
  • C语言动态内存管理malloc柔性数组示例详解

    C语言动态内存管理malloc柔性数组示例详解 什么是动态内存管理 动态内存管理是避免预定义变量长度无法适应实际大小的常见方法。在C语言中,动态内存分配和回收函数是malloc()和free()。 malloc的基本语法和用法 malloc()的原型如下: void *malloc(size_t size); 其中,参数size是所需内存块的字节数。该函数返…

    C 2023年5月23日
    00
  • C语言中如何进行代码注释?

    当我们写代码时,必须添加注释来使代码更加易于阅读和理解。在C语言中,有两种类型的注释,即单行注释和多行注释。 单行注释 单行注释用于在代码行末尾添加注释。在C语言中,单行注释以双斜杠“//”开始,直到该行的结尾。例如: // 这是一条单行注释 int a = 10; // 这是在同一行之后的注释 多行注释 多行注释用于在一段代码中添加注释。在C语言中,多行注…

    C 2023年4月27日
    00
  • C++控制台绘图头文件实例代码

    下面是对“C++控制台绘图头文件实例代码”的完整攻略: 1. 简介 在C++的控制台程序中,通过使用图形化绘图头文件,可以在控制台中绘制出各种图形。 2. 下载 在使用绘图头文件前,需要下载对应的库文件。 目前比较流行的库包括: graphics.h:Borland C++ 5.02自带的,不建议使用。 conio.h:Turbo C自带的,也不建议使用。 …

    C 2023年5月24日
    00
合作推广
合作推广
分享本页
返回顶部