自学内容网 自学内容网

【C语言练习(17)—输出杨辉三角形】

C语言练习(17)


前言

杨辉三角形的输出可以分三步,第一步构建一个三角形、第二步根据规律将三角形内容填写、第三步将三角形以等腰的形式输出

题目

  • 请输出一个十行的杨辉三角形

题目解析

  • 杨辉三角形:

在这里插入图片描述

  • 第一步先写一个斜三角形

int arr[10][10] = {0};
for (int i = 0; i < 10; i++)
{
for (int j = 0; j <= i; j++)
{
if (i == j||j==0)
{
arr[i][j] = 1;
}
printf(“%-4d “, arr[i][j]);
}
printf(”\n”);
}
在这里插入图片描述

  • 第二步根据规律,下面的数等等于上面的两个数的之和

for (int i = 2; i < 10; i++)
{
for (int j = 1; j <= i; j++)
{
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
for (int i = 0; i < 10; i++)
{
for (int j = 0; j <= i; j++)
{
printf(“%-4d “, arr[i][j]);
}
printf(”\n”);
}
在这里插入图片描述

  • 第三步调整位置
for (int k = 0; k < 26 - 4 * i / 2; k++)
{
printf(" ");
}

26是调整位置,由于输出printf("%-4d ", arr[i][j]);,空格只需在每一行前面空格即可,后面的不需要去管,
26 - 4 * i / 2表示每一行要空格的个数

在这里插入图片描述

整体代码

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
int arr[10][10] = {0};
for (int i = 0; i < 10; i++)
{
for (int j = 0; j <= i; j++)
{
if (i == j||j==0)
{
arr[i][j] = 1;
}
printf("%-4d ", arr[i][j]);
}
printf("\n");
}
for (int i = 2; i < 10; i++)
{
for (int j = 1; j <= i; j++)
{
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
for (int i = 0; i < 10; i++)
{
for (int k = 0; k < 26 - 4 * i / 2; k++)
{
printf(" ");
}
for (int j = 0; j <= i; j++)
{
printf("%-4d ", arr[i][j]);
}
printf("\n");
}

return 0;
}

结果
在这里插入图片描述


原文地址:https://blog.csdn.net/weixin_56089319/article/details/144740724

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!