如何用C语言循环输出杨辉三角?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用C语言循环输出杨辉三角?相关的知识,希望对你有一定的参考价值。

    #include <stdio.h>

    #define N 14

    void main()

    int i, j, k, n=0, a[N][N];  /*定义二维数组a[14][14]*/

    while(n<=0||n>=13)  /*控制打印的行数不要太大,过大会造成显示不规范*/

    printf("请输入要打印的行数:");

    scanf("%d",&n);

    printf("%d行杨辉三角如下:\\n",n);

    for(i=1;i<=n;i++)

    a[i][1] = a[i][i] = 1;  /*两边的数令它为1,因为现在循环从1开始,就认为a[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];  /*除两边的数外都等于上两顶数之和*/

    for(i=1;i<=n;i++)

    for(k=1;k<=n-i;k++)

    printf("   ");  /*这一行主要是在输出数之前打上空格占位,让输出的数更美观*/

    for(j=1;j<=i;j++)  /*j<=i的原因是不输出其它的数,只输出我们想要的数*/

    printf("%6d",a[i][j]);

    printf("\\n");  /*当一行输出完以后换行继续下一行的输出*/

    printf("\\n");

拓展资料:

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 [1]  目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

参考资料:C语言_百度百科

参考技术A #include <stdio.h>
main()

long i, j, n, k;
printf("请输入要输出的杨辉三角的行数:");
scanf("%d", &n);
for (i = 1;i <= n;i++)

k = 1;
for (j = 1;j <= i;j++)

printf("%5ld", k);
k = k * (i - j) / j;

printf("\\n");

参考技术B #include<stdio.h>
#define N 22
int main()

int a[N][N]; //定义二维数组
int i, j,n=0;
while(n<=0||n>21)
/*控制打印的行数不要太大,过大会造成显示不规范*/
printf("请输入要打印的行数:");
scanf("%d",&n);

printf("%d行杨辉三角如下:\n",n);
for (i = 0; i < n; i++) //先赋值杨辉三角两边

a[i][0] = 1;
a[i][i] = 1;

for (i = 2; i < n; i++) // 计算中间的数值

for (j = 1; j < i; j++)
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];

for (i = 0; i < n; i++) // 输出

for (j = 0; j < i + 1; j++)
printf("%-6d ", a[i][j]);
printf("\n");

参考技术C

C语言实现输出n层杨辉三角,注意n>34时会导致长整型溢出,参考代码如下:

#include<stdio.h>
int main()

int i,j,n;
long a[34]=1;
scanf("%d",&n);
if(n>34)return 1;
for(i=0;i<n;i++)
for(j=i;j>0;j--)
a[j]=a[j]+a[j-1];
for(j=0;j<=i;j++)
printf("%ld ",a[j]);
printf("\\n");

return 0;

参考技术D #include<stdio.h>
int i,j,n,a[30]=1;
scanf("%d",&n);
for(i=0;i<=n;i++)
for(j=i;j>0;j--)
a[j]+=a[j-1];
for(j=0;j<=i;j++)
printf("%4d",a[j]);
printf("\n");

return 0;


以上是关于如何用C语言循环输出杨辉三角?的主要内容,如果未能解决你的问题,请参考以下文章

c语言程序杨辉三角

请问c++如何用循环语句打印下面的图形?

用Python输出一个杨辉三角的例子

用c语言编写程序 输出杨辉三角

如何用C语言编程序:输入三个数,判断是不是构成三角形

用C语言循环嵌套语句编出一个三角形形状