代码说明:
限制行数为1~20行。实现杨辉三角的直角和三角形式输出。
缺点:三角形式最多只能输出20行,。20行后开始错位。
代码实现:
#include <stdio.h>
#define SIZE 20
int main()
{
int a[SIZE][SIZE];
int i,j,k,n;
printf ("请输入杨辉三角的行数n(0 < n <= 20):");
for (i = 1;i != 0;) //将范围限制在1~20
{
scanf ("%d",&n);
if (n <= 0 || n > 20)
printf ("错误,n的范围应为:0 < n < 20。请重输:");
else
i = 0;
}
for (i = 0; i < n; i++) //设置杨辉三角数组
{
for (j = 0; j <= i; j++)
{
if(i == 0 || i == j || j == 0)
{
a[i][j] = 1;
}
else
{
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
}
printf ("杨辉三角的直角形形式为:\n");
for (i = 0; i < n; i++)
{
for (j = 0; j <= i; j++)
{
printf ("%d\t",a[i][j]);
}
printf ("\n");
}
printf ("\n");
printf ("杨辉三角等腰三角形形式为:\n");
for (i = 0;i < n;i++)
{
for (k = 0; k < (n-i); k++)
printf (" "); //注意此处输出3个空格
for (j = 0; j <= i; j++)
{
printf ("%5d ",a[i][j]); //注意%5d后面还有一个空格
}
printf ("\n");
}
return 0;
}