写法一:
//【程序36】
//题目:打印出杨辉三角形(要求打印出10行如下图)
/*
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
*/
#include<stdio.h>
int main()
{
int i,j,str[11][11];
for(i=1;i<=10;i++)
{
str[i][1]=1;
str[i][i]=1;
}
for(i=3;i<=10;i++)
{
for(j=2;j<=i-1;j++)
{
str[i][j]=str[i-1][j-1]+str[i-1][j]; //核心
}
}
for(i=1;i<=10;i++)
{
for(j=1;j<=i;j++)
{
printf("%-4d ",str[i][j]); //%-4d:-是左对齐, 4是占4位
}
printf("\n");
}
return 0;
}
写法二:
#include<stdio.h>
int main()
{
int i,j,str[11][11]={};
str[1][1]=str[2][1]=str[2][2]=1;
for(i=1;i<=2;i++)
{
for(j=1;j<=2;j++)
{
if(str[i][j])
printf("%-4d ",str[i][j]);
}
printf("\n");
}
for(i=3;i<=10;i++)
{
str[i][1]=str[i][i]=1;
printf("%-4d ",str[i][1]);
for(j=2;j<=i-1;j++)
{
str[i][j]=str[i-1][j-1]+str[i-1][j];
printf("%-4d ",str[i][j]);
}
printf("%-4d\n",str[i][i]);
}
return 0;
}