稀稀落落:: 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 优质github账号直接兑换rmb,感兴趣伙伴可以私信
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)