先把对角线和第一列元素初始化为1,从第三行开始,利用初始值扩充矩阵其余元素(上方元素+左上方元素),然后输出矩阵即可:

#include<stdio.h>
int main(){
    int n,i,j;
    scanf("%d",&n);
    int a[30][30];
    for(i=0;i<n;i++)
        for(j=0;j<=i;j++){
            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]+a[i-1][j-1];

    for(i=0;i<n;i++){
        for(j=0;j<=i;j++)
            printf("%5d",a[i][j]);
        printf("\n");
    }
}