关于数组越界
  • 板块学术版
  • 楼主entity
  • 当前回复11
  • 已保存回复11
  • 发布时间2024/10/29 20:49
  • 上次更新2024/10/29 23:42:12
查看原帖
关于数组越界
225964
entity楼主2024/10/29 20:49

首先来看一份代码

//打印杨辉三角 
#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这是为什么

2024/10/29 20:49
加载中...