利用二维数组
#include<stdio.h>
#define ROW 10
int main()
{
int arr[ROW][ROW];
int i;
int j;
for (i = 0; i < ROW; i++)
{
for (j = 0; j <= i; j++)
{
if (j == 0 || j == i)//给第一列和斜对角线上的数赋值为一
{
arr[i][j] = 1;
}
else if (i > 0 && j > 0)
{
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
}
for (i = 0; i < ROW; i++)
{
for (j = 0; j <= i; j++)
{
printf("%-5d", arr[i][j]);
}
printf("\n");
}
}
利用一维数组
#include<stdio.h>
#define ROW 10
int main()
{
int i;
int j;
int a[20] = {1};
int b[20];
for (i = 0; i < ROW; i++)
{
b[0] =1;
for (j = 1; j<= i; j++)//求第i+1行的各个数值
{
b[j] = a[j - 1] + a[j];//是上面两个数之和
}
for (j = 0; j <= i; j++)
{
a[j] = b[j];//每次更新数组a
printf("%5d", a[j]);//每次输出一行值
}
printf("\n");
}
}