这个代码输入16以下的数字可以运行,16以上就不行了,请问为什么啊?
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int i,j,n;
cout<<"请输入层数:";
cin>>n;
int arr[n][n];
arr[1][1]=1,arr[2][1]=1,arr[2][2]=1;
for(i=3;i<n+1;i++)
{
arr[i][1]=1;
arr[i][i]=1;
for(j=2;j<i;j++)
{
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
}
}
for(i=1;i<n+1;i++)
{
int flag=1;
for(j=1;j<i+1;j++)
{
if(arr[i][j]==1 && flag==1)
{
cout<<setw(5*n-4*i)<<arr[i][j];
flag=0;
}
else
{
cout<<setw(8)<<arr[i][j];
}
}
cout<<endl;
}
return 0;
}