/*杨辉三角
1
1 1 a[i] [0]=1 a[i][j]=1 所以j==0||i==j
1 2 1 a[i]
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
*/
#include<stdio.h>
int main(void)
{
int i,j;//控制行和列
int a[10][10];//假设这是一个10X10的数组
for (i=0;i<10;i++)
{
for (j=0;j<=i;j++)
{
if (j==0||(j==i))
{
a[i][j]=1;
}
else
{
a[i][j]=a[i-1][j-1]+a[i-1][j];//和为 上一个数和其前面数的和
}
}
}
/*输出结果*/
for(int m=0;m<10;m++)
{
for(int n=0;n<=m;n++)
{
printf(" \t%4d",a[m][n]);
}
printf(" \n");
}
}
/*杨辉三角的变形
+ 1
1 1 空格:第一行 9个空格
1 2 1
1 3 3 1
1 4 6 4 1
*/
#include<stdio.h>
int main(void)
{
int i,j,m,n;
int a[10][10];//定义一个10×10的大数组
/*为数组赋值*/
for (i=0;i<10;i++) //10行
{
for (j=0;j<=i;j++)
{
if(j==0||(i==j))
{
a[i][j]=1;//两边的值都为1
}
else
{
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
}
}
/*打印数值和空格*/
for (m=0;m<10;m++)
{
/*打印空格*/
for (int p=0;p<10-1-m;p++)
{
printf(" ");
}
for (n=0;n<=m;n++)
{
/*打印数字*/
printf("%6d ",a[m][n]);//打印数字
// printf(“\n”);
}
printf("\n"); //打印换行
}
}