鉴于很多博主在给出编写杨辉三角的代码中,大多在main()里面定义了数组的大小,这样的话有一定的弊端,输入的行数n超过其定义的大小,就会出错。
可以将int a[100][100](全局变量)放到外面来,输入的num就能不受其内容大小限制,比如n=101的时候也能成功运行。
#include<stdio.h>
int a[100][100];
int main
{
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("%d ",a[i][j]);
printf("\n");
}
return 0;
}