三、【问题描述】
在屏幕上显示如下杨辉三角形:
                             1
                         1      1
                     1      2      1
                 1       3     3       1
             1       4      6      4       1
         1       5      10     10      5       1
     ...      ...     ...     ...      ...     ...       ...

【输入形式】
从键盘输入整数n(n>=0且n<=12)
【输出形式】
在屏幕上输出n+1行杨辉三角形。

#include<stdio.h>
int main()
{
    int a[100][100], i, j, num,k,count=0;
    scanf("%d", &num);
    for (i = 0; i < 100; i++)//初始化数组全部初始化为0
    {
        for (j = 0; j < 100; j++)
            a[i][j] = 0;
    }
    for (i = 0; i < num+1; i++)//使数组的第一列都为1
        a[i][0] = 1;
    for (i = 1; i < num+1; 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+1; i++)//输出
    {
        for (k = 0; k <= 2 * num-2*count+2; k++)
        {
            printf(" ");
        }
        count++;
        for (j = 0; j <= i; j++)
            printf("%4d",a[i][j]);
        printf("\n");
    }
    return 0;
}

更多推荐