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日

相关文章

  • Android编程之json解析实例详解

    我将为你介绍一下 “Android编程之json解析实例详解” 的完整攻略。 1. 什么是Json? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于JavaScript代码语法,但是与之无关。在Android编程中,Json数据常常被用来传递数据。 2. Json的基本格式 下面是一个Json的基本格式: …

    C 2023年5月23日
    00
  • C程序 两个复数相加

    C程序:两个复数相加使用攻略 什么是复数? 复数是由实部和虚部组成的数字,可以表示为 a+b*i,其中 a 为实部,b 为虚部,i 为虚数单位。 目标 本篇攻略旨在帮助大家编写一个C程序,用于计算两个复数的和。程序将要接收四个变量,分别表示两个复数的实部和虚部,计算他们的和并返回结果。 程序流程 程序的大致流程如下: 首先定义两个结构体数据类型 comple…

    C 2023年5月9日
    00
  • 为什么MySQL数据库索引选择使用B+树?

    MySQL是一个流行的关系型数据库管理系统,它使用了许多不同的数据结构来提高对数据库的查询性能。其中,B+树索引是MySQL最常用的索引类型。那么,为什么MySQL数据库索引选择使用B+树呢?这个过程可以从以下几个方面进行解释: 1. B+树的数据结构和特点 B+树是一种多叉树,与其他数据结构相比,它具有以下几个特点: 所有关键字都在叶子节点上,非关键字只存…

    C 2023年5月23日
    00
  • C语言中的睡眠理发师问题解决方案

    首先我们来介绍一下“C语言中的睡眠理发师问题”是什么。 “C语言中的睡眠理发师问题”是一个经典的操作系统并发问题,用于模拟多线程的同步、互斥等问题。问题可以描述为:在一个理发店中,有一个理发师和若干个等待理发的顾客。理发师和每位顾客都是一个独立的线程,理发师依次为每位等待的顾客理发,每位顾客进入理发椅前都需要等待理发师叫号。如果顾客到达时店里有顾客正在理发,…

    C 2023年5月9日
    00
  • 01-C语言概述

    C语言概述 1.什么是C语言 C语言就是人和计算机交流的一种语言语言是用来交流沟通的。有一方说,有另一方听,必须有两方参与,这是语言最重要的功能: 说的一方传递信息,听的一方接收信息; 说的一方下达指令,听的一方遵循命令做事情。 语言是人和人交流,C语言是人和机器交流。只是,人可以不听另外一个人,但是,计算机是无条件服从。语言有独特的语法规则和定义,双方必须…

    C语言 2023年4月18日
    00
  • cmake 学习笔记

    CMake 学习笔记 CMake 是什么 CMake 是一个跨平台的自动化构建系统,使用 CMake 可以简化 C++ 项目的构建,CMake 脚本可以生成 Makefile、Visual Studio 项目和 Xcode 项目等构建文件。 CMake 的优势 CMake 有以下优点: 跨平台:CMake 可以在多个操作系统和编译器下运行。 系统独立性:CM…

    C 2023年5月23日
    00
  • Bootstrap3使用typeahead插件实现自动补全功能

    下面会详细讲解如何使用 Bootstrap3 的 typeahead 插件来实现自动补全功能。 1. 安装 Bootstrap3 和 typeahead 插件 首先需要在网页中引入 Bootstrap3 和 typeahead 插件的文件。在 head 部分加入以下代码: <!– 引入 Bootstrap3 样式表文件 –> <link…

    C 2023年5月23日
    00
  • 一道超经典的C++结构体的题目

    我来为您详细讲解C++结构体问题的攻略。 一道超经典的C++结构体的题目 题目描述 假设有一个Person结构体,需要包含姓名、年龄、身高这三个属性: struct Person { string name; int age; float height; }; 请编写一个程序,能够完成以下操作: 创建一个Person结构体的变量,用指定的姓名、年龄、身高对其…

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