二维数组打印杨辉三角
让我们用C语言来打印出高中让我们头疼的杨辉三角,话不多说,上代码
- 我们先创建一个二维数组,并初始化为0,定义两个整形变量i,j控制行数和列数i,再定义一个n用来接受打印的行数
int a[100][100]= {0};
int i,j,n;
- 输入打印的行数,并控制行数在1到100行以内
do
{
printf("请输入打印的行数:");
scanf("%d",&n);
} while(n<0||n>100);
3.根据杨辉三角的性质(第i行j列的数等于i-1行j-1列的数加上i-1行j列的数)进行操作
a[0][0]=1;//第一行为1
for(i=1; i<=n; i++)
{
a[i][0]=1;//每一行的第一列都为1
for(j=1; j<=n; j++)
{
if(i==j)
a[i][j]=1;//每一行的最后一列为1
//其他情况处理
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
4.打印杨辉三角
for(i=0; i<=n; i++) {
for(int k=n;k>=i;k--)
printf(" ");
for(j=0; j<=i; j++) {
printf("%2d",a[i][j]);
}
printf("\n");
}
全部代码如下
#include<stdio.h>
int main()
{
int a[100][100]= {0};
int i,j,n;
//打印的行数小于0或者多于100时,重新输入
do
{
printf("请输入打印的行数:");
scanf("%d",&n);
} while(n<0||n>100);
a[0][0]=1;//第一行为1
for(i=1; i<=n; i++)
{
a[i][0]=1;//每一行的第一列都为1
for(j=1; j<=n; j++)
{
if(i==j)
a[i][j]=1;//每一行的最后一列为1
//其他情况处理
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
//打印出二维数组a
for(i=0; i<=n; i++) {
for(int k=n;k>=i;k--)
printf(" ");
for(j=0; j<=i; j++) {
printf("%2d",a[i][j]);
}
printf("\n");
}
return 0;
}
希望对你的有所帮助 ໒(⊙ᴗ⊙)७✎▤