C++ int到int[x]的赋值类型不兼容

C++ int到int[x]的赋值类型不兼容,c++,C++,所以有一个由n行和m列组成的矩阵,xy是第一棵着火的树的坐标。算出离洞森林被烧毁还有多少天 我想我把密码记下来了,但有个问题 #include <iostream> using namespace std; int main() { int n,m,p[5][5],x,y,z=1,c,a=1,b=1; cout<<"Cate linii de copaci sunt:"; cin>>n; cout<<"Cate

所以有一个由n行和m列组成的矩阵,xy是第一棵着火的树的坐标。算出离洞森林被烧毁还有多少天

我想我把密码记下来了,但有个问题

#include <iostream>

using namespace std;

int main()
{
    int n,m,p[5][5],x,y,z=1,c,a=1,b=1;
    cout<<"Cate linii de copaci sunt:";
    cin>>n;
    cout<<"Cate coloane de copaci sunt:";
    cin>>m;
    cout<<"Coordonata X a copacului de la care a izbucnit focul:";
    cin>>x;
    cout<<"Coordonata Y a copacului de la care a izbucnit focul:";
    cin>>y;
    p[x][y]=1;
        while (c!=0) {
            c=0;
            if (b!=0) {
                    b=0;
            if (x+a<=n) {
                 p[x+a]=1;
                 b++;
            }
             if (x-a<=n) {
                 p[x-a]=1;
                 b++;
            }
             if (y+a<=m) {
                 p[x+a]=1;
                 b++;
            }
             if (y-a<=m) {
                 p[x-a]=1;
                 b++;
            }
            c=1;
            z++;
            }
            a++;
        }
        cout<<"In total a durat "<<z<<" zile ca sa arda toata padurea.";
    return 0;

}

#包括
使用名称空间std;
int main()
{
int n,m,p[5][5],x,y,z=1,c,a=1,b=1;
coutn;
coutm;
coutx;
库蒂;
p[x][y]=1;
而(c!=0){
c=0;
如果(b!=0){
b=0;

如果(x+a定义2D数组时,起点(数组名称)实际上是int** 因此,当你用p[x-a]去引用一次时,类型实际上是int*而不是int。
因此,如果您试图使用int变量设置此值,则当您定义2D数组时,将得到“不兼容类型”

,起点(数组名称)实际上是int** 因此,当你用p[x-a]去引用一次时,类型实际上是int*而不是int。
因此,如果您试图使用int变量设置此值,您将得到“不兼容类型”

p[5][5]
声明一个二维数组或矩阵,如您所述。当您想要插入一个值时,您必须在两个维度中指定位置,例如
p[1][2]
。目前您仅使用
p指定一个维度[x+a]
,它指的是矩阵中的一行,也可以理解为指向一维矩阵的指针。因此,将
int
分配给
int[5]
的错误,因为您试图将
int
分配给矩阵中的一行。

p[5][5]
声明一个二维数组或矩阵,如您所述。当您要插入一个值时,必须在两个维度中指定位置,例如
p[1][2]
。当前您仅使用
p[x+a]指定一个维度
,它指的是矩阵中的一行,也可以理解为指向一维矩阵的指针。因此,将
int
分配给
int[5]
时出错,因为您试图将
int
分配给矩阵中的一行。

p[x+a]
是2D数组中的一行,您正在尝试分配一个数字。您在这里想做什么?欢迎来到Stack Overflow!请阅读。关于您的问题,还请提取a。此外,请注意:检查您应用于问题的标记的说明,特别是“c”标签放错了!请阅读调试代码的提示。也许您想要
p[x+a][y]=1
p[x+a]
是2D数组中的一行,您正在尝试分配一个数字。您在这里想做什么?欢迎来到Stack Overflow!请阅读。关于您的问题,还请提取a。此外,请注意:检查您应用于问题的标记的说明,特别是“c”标签放错了!请阅读调试代码的提示。也许您想要
p[x+a][y]=1
?2d
int
数组不是
int**
。它们是完全不同的东西。2d
int
数组会衰减为
int(*)[N]
2d
int
数组不是
int**
。它们是完全不同的东西。2d
int
数组会退化为
int(*)[N]