C语言写杨辉三角主要在于一次空格一次输出,这就需要两个镶嵌循环,话不多说,上代码
#include <stdio.h>
long f(int i,int j) //第几行,第几列
{
if(j==1||i==j)
return 1;
return f(i-1,j-1)+f(i-1,j);
}
int main()
{
int n,i,j,b;
scanf_s("%d",&n);
for(i=1;i<=n;i++) //往下双循环结合在一起,刚写的时候让我头疼无比
{
for(b=1;b<=2*n-2*i+1;b++)
{
printf(" ");
}
for(j=1;j<=i;j++)
{
printf("%4d",f(i,j));
}
printf("\n");
}
return 0;
}
附图如下:
这个程序有一个bug请大家修改:当有超过四位数的结果时,数字之间就会没有间隔,怎么修改能解决这个问题呢?
就像这样: