稀稀落落:: 2022-03-17 17:56 采纳率: 100%
浏览 78
已结题

给二维数组赋值是什么导致了“写入访问冲突”,该如何处理?

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

在写螺旋方阵是发生的问题,是以1 开头的顺时针旋转的螺旋方阵

img


代码片在此

#include<iostream>
using namespace std;
#pragma once
class MATRIX
{
private:
    int (*a)[20];
    int startnum;
    int n;
public:
    MATRIX(int s, int m);
    void process();
    void print();
};



#include "MATRIX.h"

MATRIX::MATRIX(int s, int m)
{
    startnum = s;
    n = m;
}

void MATRIX::process()
{
    int i, b, c, d, e;
    int s;
    s = startnum; 
    for (i = 0; n / 2 > 0; i++, n - 2)
    {
        for (b = i; b < n + i; b++)        //上
        {
            a[i][b] = s;
            s++;
        }
        
        for (c = (i + 1); c < n + i; c++)        //右
        {
            a[c][b] = s;
            s++;
        }

        for (d = b - 1; d >= i; d--)//下
        {
            a[c][d] = s;
            s++;
        }
        for (e = c - 1; e > i; e--)  //左
        {
            a[e][i] = s;
            s++;
        }
    }
    
}


void MATRIX::print()
{
    for (int y = 0; y < n; y++)
    {
        for (int x = 0; x < n; x++)
            cout << a[y][x] << '\t';
        cout << '\n';
    }
}

#include"MATRIX.h"

int main()
{
    int s, m;
    cout << "请分别输入起始数及层数:";
    cin >> s >> m;
    MATRIX t(s, m);
    t.process();
    t.print();
    return 0;
}

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-03-17 18:26
    关注

    在循环中的n-2是没有意义的,n值不会改变,改为n=n-2,这是能看到的问题i
    不知道你二维数组有多大,没法判断行列是否越界

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 3月28日
  • 已采纳回答 3月20日
  • 创建了问题 3月17日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。