注意!!:我所使用的陣列是由1開始,0我不使用。因此,各位同學自行練習時,請考慮陣列起始位置與陣列大小。


#include<stdio.h>

int main()
{
    int i,j,k;
    int size=15;
    printf("Input layer of Pascal Triangle:");
    scanf("%d",&size);
    int a[size+1][size+1];

    for(i=1;i<=size;i++)      //initialize array
    {
        for(j=1;j<=size;j++)
        {
            if(i==1 || j==1)
                a[i][j]=1;
            else
                a[i][j]=0;
        }
    }


    for(i=2;i<=size;i++)  //calculate the triangle
    {
        for(j=2;j<=size-i+1;j++)
        {
            a[i][j]=a[i-1][j]+a[i][j-1];
        }

    }


    for(i=1;i<=size;i++)      //print result
    {
        for(j=1;j<=size;j++)
        {
            if(a[i][j]!=0)
                printf(" %3d ",a[i][j]);
        }
        printf("\n");
    }

    printf("==========================================\n");

    for(i=1;i<=size;i++)
    {
        for(j=1;j<=size-i;j++)
        {
            printf("   ");
        }
        k=i;
        for(j=1;j<=i;j++,k--)
        {
            if(a[k][j]!=0)
                printf("%5d ",a[k][j]);
        }
        printf("\n");
    }

    return 0;
}
                      


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 nanosheep 的頭像
    nanosheep

    LearningNote

    nanosheep 發表在 痞客邦 留言(0) 人氣()