杨辉三角前7行怎么输出?输出格式为“%4d” 只用for循环和二维数组,最简单的方式有哪些?
#include<stdio.h>
int main()
{
int a[100][100],i,j,num;
printf("请输入需要打印的行数:");
scanf("%d",&num);
for(i=0;i<100;i++) //初始化数组
{
for(j=0;j<100;j++)
a[i][j]=0;
}
for(i=0;i<num;i++) //使数组的第一列都为1
a[i][0]=1;
for(i=1;i<num;i++) //第i行j列元素等于第i-1行j列和第i-1行j-1列元素的和
for(j=1;j<=i;j++)
a[i][j]=a[i-1][j]+a[i-1][j-1];
for(i=0;i<num;i++) //输出杨辉三角形
{
for(j=0;j<=i;j++)
printf("%4d ",a[i][j]);
printf("\n");
}
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int i, j, m, number[90][90];//数组初始化为90行列,实则无法显示这么多
printf("请输入杨辉三角的行数:");
printf("\n");
number[m][m] = scanf("%d", &m); //通过输入控制杨辉三角行数
/*杨辉三角构造*/
for (i = 0; i < m; i++)
{
for (j = 0; j <= i; j++)
if (j == 0 || j == i) //下标为0的列以及每行的最后一个元素为1
number[i][j] = 1;
else
number[i][j] = number[i - 1][j] + number[i - 1][j - 1];
}
/*输出杨辉三角*/
for (i = 0; i < m; i++)
{
for (j = 0; j <= i; j++)
printf("%-4d", number[i][j]);
printf("\n");
}return 0;
}