梦呓_ 2021-12-02 19:29 采纳率: 81%
浏览 26
已结题

谁知道这是什么问题,该怎么解决

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图

这是所运行的程序

#include <iostream>
using namespace std;
//判断每一行中可消除的元素,
//并用指针数组中的指针指向这些元素
static int* clean_Line[30][30]={0};//保存每一行待消除的元素的地址
int* clean_Row[30][30]={0};//保存每一行待消除的元素的地址
void EqualLine(int arr[30][30], int n, int m)
{
    int i=0, j=0;
    int* temp= &arr[i][j];//第i行,第j列的元素地址
    //按行遍历整个数组
    for ( i = 0; i < n; i++)//n行循环
    {
        for ( j = 0; j < m-1; j++)
        {
            
            //如果该元素不等于下一个元素
            if (arr[i][j] != arr[i][j + 1])
            {
                
                temp = &arr[i][j+1];
            }

            //如果只有两个元素相同
            else if (arr[i][j] == arr[i][j + 1] && arr[i][j + 1] != arr[i][j + 2])
            {
            
                temp = &arr[i][j+1];
            }

            //如果出现三个及以上元素相同
            else
            {
                int cnt = 0;
                for (int s = 0; temp == (temp + 1); s++,temp++)
                {
                    clean_Line[i][s] = temp;
                    clean_Line[i][s + 1] = (temp + 1);
                    cnt++;
                }
                j = j + cnt - 1;
            }
        }
    }    
}
void EqualCol(int arr[30][30], int n, int m)
{
    int i=0, j=0;
    int* temp=& arr[j][i];//第j行,第i列的元素地址
    //按列遍历整个数组
    for ( i = 0; i < m; i++)//m列循环
    {
        for ( j = 0; j < n-1; j++)
        {
            
            //如果该元素不等于下一个元素
            if (arr[j][i] != arr[j+1][i])
            {
                temp = &arr[j+1][i];//向下走一列
            }

            //如果只有两个元素相同
            else if (arr[j][i] == arr[j+1][i] && arr[j+1][i] != arr[j+2][i + 2])
            {
                temp = &arr[j + 1][i];//向下走一列
            }

            //如果出现三个及以上元素相同
            else
            {
                int cnt = 0;
                for (int s = 0; temp == (temp + 1); s++,temp++)
                {
                    clean_Row[s][i] = temp;
                    clean_Row[s+1][i] = (temp + 1);
                }
                j = j + cnt - 1;
            }
        }
    }

}

int main()
{
    //输入n行m列
    int n, m;
    cin >> n >> m;
    //创建一个足够大的数组作为棋盘
    int arr[30][30];
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            cin >> arr[i][j];
        }
    }
    EqualLine(arr, n, m);
    EqualCol(arr, n, m);
    for (int s = 0; s < n; s++)
    {
        for (int t = 0; t < m; t++)
        {
            * clean_Line[s][t]=0;
        
        }
    }
    for (int s = 0; s < n; s++)
    {
        for (int t = 0; t < m; t++)
        {
            *clean_Row[s][t] = 0;
        }
    }
    
    for (int p = 0; p < n; p++)
    {
        for (int q = 0; q < m; q++)
        {
            cout << arr[p][q]<<" ";
        }
        cout << endl;
    }
    
    return 0;
}


这是问题描述
https://ask.csdn.net/questions/7588239?answer=7588239&spm=1005.2026.3001.5703

  • 写回答

1条回答 默认 最新

  • mzhan017 2021-12-04 08:10
    关注

    clean_Line,是个指针数组,指向什么地址,需要先分配内存

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

报告相同问题?

问题事件

  • 系统已结题 12月15日
  • 已采纳回答 12月7日
  • 修改了问题 12月2日
  • 创建了问题 12月2日

悬赏问题

  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行