求助为什么用n创建二维数组不能全部初始化为0,用常数5就能了
  • 板块P3397 地毯
  • 楼主HITvici
  • 当前回复9
  • 已保存回复9
  • 发布时间2023/1/8 14:45
  • 上次更新2023/10/24 05:10:17
查看原帖
求助为什么用n创建二维数组不能全部初始化为0,用常数5就能了
801021
HITvici楼主2023/1/8 14:45

这个代码是可以通过样例的

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;


int main()
{
    int n,m;
    cin>>n>>m;
    int a[5][5]= {0};
    for(int i=0; i<m; i++)
    {
        int x1,y1,x2,y2;
        cin>>x1>>y1>>x2>>y2;
        for(int j=x1-1; j<x2; j++)
        {
            for(int k=y1-1; k<y2; k++)
            {
                a[j][k]++;
            }
        }
    }

    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
        {
            cout<<a[i][j]<<' ';
        }
        cout<<endl;
    }
    return 0;
}

//这个是可以通过案例的

但是下面这个是我最初的代码,区别仅仅在于对二维数组的初始化用了n

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;


int main()
{
    int n,m;
    cin>>n>>m;
    int a[n][n]= {0};
    for(int i=0; i<m; i++)
    {
        int x1,y1,x2,y2;
        cin>>x1>>y1>>x2>>y2;
        for(int j=x1-1; j<x2; j++)
        {
            for(int k=y1-1; k<y2; k++)
            {
                a[j][k]++;
            }
        }
    }

    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
        {
            cout<<a[i][j]<<' ';
        }
        cout<<endl;
    }
    return 0;
}


这样显示数组元素没有全部初始化为0,请问为什么呀

2023/1/8 14:45
加载中...