杨辉三角前7行怎么输出?输出格式为“%4d” 只用for循环和二维数组,最简单的方式有哪些?

杨辉三角前7行怎么输出?输出格式为“%4d” 只用for循环和二维数组,最简单的方式有哪些?


#include<stdio.h>
int main()
{
    int a[100][100],i,j,num;
    printf("请输入需要打印的行数:");
    scanf("%d",&num);
    for(i=0;i<100;i++)                                  //初始化数组
    {
        for(j=0;j<100;j++)
            a[i][j]=0;
    }
    for(i=0;i<num;i++)                                  //使数组的第一列都为1
        a[i][0]=1;
    for(i=1;i<num;i++)                                  //第i行j列元素等于第i-1行j列和第i-1行j-1列元素的和
        for(j=1;j<=i;j++)
            a[i][j]=a[i-1][j]+a[i-1][j-1];
    for(i=0;i<num;i++)                                  //输出杨辉三角形
    {
        for(j=0;j<=i;j++)
            printf("%4d ",a[i][j]);
        printf("\n");
    }
    return 0;
}

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
    int i, j, m, number[90][90];//数组初始化为90行列,实则无法显示这么多
    printf("请输入杨辉三角的行数:");
    printf("\n");
    number[m][m] = scanf("%d", &m);        //通过输入控制杨辉三角行数

    /*杨辉三角构造*/
    for (i = 0; i < m; i++)
    {
        for (j = 0; j <= i; j++)
            if (j == 0 || j == i)    //下标为0的列以及每行的最后一个元素为1
                number[i][j] = 1;
            else
                number[i][j] = number[i - 1][j] + number[i - 1][j - 1];
    }

    /*输出杨辉三角*/
    for (i = 0; i < m; i++)
    {
        for (j = 0; j <= i; j++)
            printf("%-4d", number[i][j]);
        printf("\n");
    }return 0;
}