C语言基础题OJ 杨辉三角形

文章目录

  • 题目描述
    • 输入输出提示
    • 程序运行实例
  • 一、解题思路
  • 二、题解
    • 源代码
  • 写在最后


题目描述

编程打印具有如下形式的杨辉三角形(它的特点是左右两边全是1,从第二行起,中间的每一个数是上一行里相邻两个数之和),其中输出数据的行数n从键盘输入,并且n<=10。


输入输出提示

输入格式: “%d”
输出格式:
输入提示信息:“input n (n<=10):\n”
输出数据格式:"%4d"
数据换行: “\n”


程序运行实例

程序运行结果示例1:
Input n (n<=10):
51
   1   1
   1   2   1
   1   3   3   1
   1   4   6   4   1

程序运行结果示例2:
Input n (n<=10):
71
   1   1
   1   2   1
   1   3   3   1
   1   4   6   4   1
   1   5  10  10   5   1
   1   6  15  20  15   6   1


一、解题思路

找到每个元素对应上一行元素和下一行元素的规律即可


二、题解

源代码

代码如下:

/*
* Author:	FeverTwice
* Date:		2021-06-02
* Func:		Solution for Competition
*/

#include
#define ARR_SIZE 11

void YHTriangle(int a[][ARR_SIZE],int n);
void PrintYHTriangle(int a[][ARR_SIZE],int n);

int main(void)
{
    int a[ARR_SIZE][ARR_SIZE],n;
    printf("input n(n<=10):\n");
    scanf("%d",&n);//根据要求输入杨辉三角形的行数
    YHTriangle(a,n);
    PrintYHTriangle(a,n);
    return 0;
}

//函数功能:计算n行杨辉三角形中各元素数值
void YHTriangle(int a[][ARR_SIZE],int n)
{
    int i,j;
    for(i=1;i<=n;i++)
    {
          a[i][1]=1;
          a[i][i]=1;
    }
    for(i=3;i<=n;i++)
    {
          for(j=2;j<=i-1;j++)
          {
                 a[i][j]=a[i-1][j-1]+a[i-1][j];
          }
    }
}

//函数功能:输出n行杨辉三角形
void PrintYHTriangle(int a[][ARR_SIZE],int n)
{
    int i,j;
    for(i=1;i<=n;i++)
    {
         for(j=1;j<=i;j++)
        {
                 printf("%4d",a[i][j]);
        }
    printf("\n");
    }
}


写在最后

各位看官,都看到这里了,麻烦动动手指头给博主来个点赞8,您的支持作者最大的创作动力哟! <(^-^)>
才疏学浅,若有纰漏,恳请斧正
本文章仅用于各位同志作为学习交流之用,不作任何商业用途,若涉及版权问题请速与作者联系,望悉知

你可能感兴趣的:(C语言,c语言,编程语言,算法,杨辉三角函数)