c语言之杨辉三角打印前10行

 

 由上图分析可知杨辉三角外层都为1,第二行开始每一个元素都是上一行同一列及前一列的和。

第一步,先将外层输出为1,代码如下:

#include "stdio.h"
int main(int argc, char const *argv[])
{
    int a[10][10] = {};
    int i,j;
    for (i = 0; i < 10; i++)
    {
        a[i][0] = 1;
        a[i][i] = 1;
        for (j = 0; j <= i; j++)
        {
            printf("%d ", a[i][j]);
        }
        printf("n");
    }
    return 0;
}

运行结果如下: 

第二步,输出中间数值,代码如下:

#include "stdio.h"
int main(int argc, char const *argv[])
{
    int a[10][10] = {};
    int i,j;
    for (i = 0; i < 10; i++)
    {
        a[i][0] = 1;
        a[i][i] = 1;
        for (j = 0; j <= i; j++)
        {
            if(i>=2)
            {
                a[i][j]=a[i-1][j]+a[i-1][j-1];
            }
            printf("%d ", a[i][j]);
        }
        printf("n");
    }
    return 0;

 运行结果如下:

最后整理输出格式,完整如下:

#include "stdio.h"
int main(int argc, char const *argv[])
{
    int a[10][10] = {};
    int i,j;
    for (i = 0; i < 10; i++)
    {
        int g=10-i;
        while (g--)
        {
            printf(" ");
        }
        a[i][0] = 1;
        a[i][i] = 1;
        for (j = 0; j <= i; j++)
        {
            if(i>=2)
            {
                a[i][j]=a[i-1][j]+a[i-1][j-1];
            }
            printf("%d ", a[i][j]);
        }
        printf("n");
    }
    return 0;
}

运行结果如下: