C语言杨辉三角

来源:百度知道 编辑:UC知道 时间:2024/05/21 04:33:29
我会用C语言输出杨辉三角 但是我们老师要我们输出 左右对称的杨辉三角
1
1 1
1 2 1
像这样的 我用空格和循环都无法对齐 一般到了有3位数就会偏差很多 请问有没有什么方法可以用? 谢谢各位

给,你们老师的要求真怪异,:
#include<conio.h>
#include<stdio.h>

void fun(int a[][34],int n)
{
int i,j;

for(i=0;i<n;i++)
for(j=0;j<=i;j++)
{
if(i==j)
a[i][j]=1;
else if(j==0)
a[i][j]=1;
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
int main()
{
int i,j,k,n;
int a[34][34];
k=1;
while(scanf("%d",&n)==1) // 输入你要显示的行数,如1,2,3,4,...
{
fun(a,n);

printf("Case %d:\n",k++);

for(i=0;i<n;i++)
{
for (j = 0; j < n - i; j ++)
printf(" ");
for(j=0;j<=i;j++)
{
if(j==i)
printf("%d",a[i][j]);
else
printf("%d ",a[i][j]);
}
printf("\n");
}
printf("\n");
}

getch();
return 0;
}