初学者求高手指点——关于二维数组做函数参数
想要做一个杨辉三角形的,这个是5阶的,要求用函数递归法实现,但是这样写就只能出5阶,2维数组做参数时又必须要第二维上有数,
怎么样改能让程序变得灵活一点,就是scanf一个数就立刻能出来几阶的。。。
求大侠指点
#include <stdio.h>
void f(int n, int a[5][5]);
void main()
{ int n,m,i,k,j;
printf("the value of n is 5\n");
m=n=5;
int a[5][5]={0};
f(n,a);
for(i=0;i<n;i++)
{
k=n-i-1;
for(j=0;j<k;j++)
printf(" ");
for(j=0;j<=i;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
}
void f(int n,int a[5][5])
{
int i,j;
int num(int i,int j, int a[5][5]);
a[0][0]=1;
for(i=1;i<n;i++)
{
for(j=0;j<=i;j++)
{
a[i][j]=num(i,j,a);
}
}
}
int num(int i,int j, int a[5][5])
{
if(j==0)
a[i][j]=1;
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
return a[i][j];
}