稀稀落落::
2022-03-17 17:56
采纳率: 100%
浏览 26

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

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

在写螺旋方阵是发生的问题,是以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条回答 默认 最新

相关推荐 更多相似问题