二维数组和指针的应用:杨辉三角形
#include <stdio.h>
#include <Windows.h>
#define N 7
void setdata(int (*a)[N],int n)
{
int i,j;
for(i=0;i<n;i++)//对第一列和对角线赋初值1
{
a[i][i]=1;
a[i][0]=1;
}
for(i=2;i<n;i++)//给其他元素进行赋值
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
void outdata(int (*a)[N],int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<i;j++)//去除对角线和第一列元素来看,其他元素的列值始终小于行值
printf("%5d",a[i][j]);
printf("\n");
}
}
void main()
{
int a[N][N];
setdata(a,N);
outdata(a,N);
system("pause");
}
程序输出截图: