首先来看一份代码
//打印杨辉三角
#include<iostream>
using namespace std;
int main(void)
{
int n;
cout<<"请输入您需要的杨辉三角形行数"<<endl;
cin>>n;
// int arr[n + 1][n + 1] = {{1}};
int arr[n][n] = {{1}};
// int arr[n - 2][n - 2]= {{1}};
for(int i = 1;i < n + 1 ;i++)
{
int count = 0;
for(int j = 0; j < i ;j++)
{
if(j == 0)
{
arr[i][j] = 1;
cout<<arr[i][j]<<"\t";
}else
{
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
cout<<arr[i][j]<<"\t";
}
count ++;
if(count % i == 0)
{
count = 0;
cout<<endl;
}
}
}
return 0;
}
显然,i会取到n,但是这一段程序可以运行而不会出现RE的现象,甚至还能输出正常的结果,想问问dalao这是为什么