打印杨辉三角,会的来看看哪里错了
输入行数,打印杨辉三角:如输入 5 则打印输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 3 1
但是我的却这样输出:
1
1 1 1
1 2 2 2 1
1 2 2 2 2 2 1
1 4 4 4 4 4 4 4 1
我的代码如下,帮忙改改吧,
#include "stdio.h"
main()
{
int i,j,k,l,n;
int a[1000];
l=0;
k=0;
printf("please input a number:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n+i-1;j++)
{
if(j<=n-i)
printf(" ");
else
{
if(j==n-i+1||j==n+i-1)
{
a[k]=1;
printf("%d ",a[k]);
k++;
}
else
{
a[k]=a[k-3-l]+a[k-2-l];
printf("%d ",a[k]);
k++;
l++;
}
}
}
printf("\n");
}
}