因此,存在n行和m列的矩阵,x y是首先着火的树的坐标。弄清楚洞穴森林被烧毁的天数。
我想我的代码已经关闭了,但它有问题。
#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;
}
每当p [x / y - / + a] = 1时就会出现这样的错误:将int分配给int [5]时出现不兼容的类型
如果有人能帮助我理解我错误地显示了这个错误。而且,如果有一个比我写的更好的解决方案,我会恭喜地看到它。我知道这可能是一个简单的错误,但我仍处于编码生涯的开始阶段。
感谢您的帮助/阅读!祝你今天愉快 !
当我声明Matrix时..如果我将列和行更改为另一个值,则错误将在int赋值为int时显示不兼容的类型[我在声明中放入的值]
嗯,没有真正期待任何东西,因为我正在学习,但我希望的结果是没有这个错误,也许是一个不同的错误我会知道要解决但从未见过这个。
p[5][5]
声明了一个二维数组或矩阵,如你所述。如果要插入值,则必须在两个维度中指定位置,例如p[1][2]
。目前,您只使用p[x+a]
指定一个维度,该维度引用矩阵中的一行,也可以理解为指向一维矩阵的指针。因此,关于将int
分配给int[5]
的错误,因为您试图将int
分配给矩阵中的一行。
当您定义2D数组时,起点(数组名称)实际上是int **因此,当您使用p [x-a]取消引用一次时,类型实际上是int *而不是int。因此,如果你试图用int变量设置它,你会得到'不兼容的类型'