C:
#include <stdio.h>
#define N 15
int main()
{
    int arr[N][N] = { 0 }; //初始化
    int i = 0;//行数
    int j = 0;//列数
    for (i = 0; i < N; i++)
    {
        arr[i][0] = 1; //每行首元素是 1
        for (j = 0; j <= i; j++)//为啥j<=i呢?因为每一行的个数(每一列多少个=j)等于该行行数 (i)
        {
            if (i == j)
            {
                arr[i][j] = 1; //每行末位是 1
            }
            if (i >= 2 && j >= 1)   //中间元素在第三行第二列才开始有,
                //之后每一行的中间元素都要执行。
            {
                arr[i][j] = arr[i - 1][j] + arr[i - 1][j-1];
            }
        }
    }
    //打印
    for (i = 0; i < N; i++)
    {
        for (j = 0; j <= i; j++)
        {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}
Java:
public class YH {
    public static void main(String[] args) {
        int arr[][];
        int N = 10;
        arr = new int[N][N];
        int i = 0;//行数
        int j = 0;//列数
        for (i = 0; i < N; i++)
        {
            arr[i][0] = 1; //每行首元素是 1
            for (j = 0; j <= i; j++)//为啥j<=i呢?因为每一行的个数(每一列多少个=j)等于该行行数 (i)
            {   if (i == j)
                {
                    arr[i][j] = 1; //每行末位是 1
                }
                if (i >= 2 && j >= 1)   //中间元素在第三行第二列才开始有,
                //之后每一行的中间元素都要执行。
                {
                    arr[i][j] = arr[i - 1][j] + arr[i - 1][j-1];
                }
            }
        }
        //打印
        for (i = 0; i < N; i++)
        {
            for (j = 0; j <= i; j++)
            {
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }
    }
}




















