C++ int到int[x]的赋值类型不兼容
所以有一个由n行和m列组成的矩阵,xy是第一棵着火的树的坐标。算出离洞森林被烧毁还有多少天 我想我把密码记下来了,但有个问题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
#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
?2dint
数组不是int**
。它们是完全不同的东西。2dint
数组会衰减为int(*)[N]
2dint
数组不是int**
。它们是完全不同的东西。2dint
数组会退化为int(*)[N]