【发布时间】:2015-10-31 19:35:18
【问题描述】:
我正在尝试在矩阵中找到最大的 2x2 平均值。我找到了一个与我分享similar problem 的人,但是他们的解决方案不起作用。
下面是我的代码:
//Part B
//Finding deepest 2x2 area
int rowX, colX, ac1Row, ac1Col, ac2Row, ac2Col, ac3Row, ac3Col, ac4Row, ac4Col;
float largestArea = 0;
for(rowX = 0; rowX < dataRow - 1; rowX++){
for(colX = 0; colX < dataCol - 1; colX++){
float area = (oceanData[rowX][colX] + oceanData[rowX][colX + 1] + oceanData[rowX + 1][colX] + oceanData[rowX + 1][colX + 1]) / 4;
if(largestArea < area){
largestArea = area;
int ac1Row = rowX; int ac1Col = colX;
int ac2Row = rowX; int ac2Col = colX + 1;
int ac3Row = rowX + 1; int ac3Col = colX;
int ac4Row = rowX + 1; int ac4Col = colX + 1;
}
}
}
//Display results
cout << endl << "The deepest 2x2 area is: " << largestArea << " m" << endl;
cout << endl << "The coordinates are: (" << ac1Row << "," << ac1Col << ")" << " " << "(" << ac2Row << "," << ac2Col << ")";
cout << "(" << ac3Row << "," << ac3Col << ")" << "(" << ac4Row << "," << ac4Col << ")" << endl;
我正在使用 .txt 文件,其数据为 6 x 6(数据存储在 oceanData 中,大小存储在 dataRow 和 dataCol 中)但是,当我尝试输出坐标我得到奇怪的数字: 例如。
The coordinates are: (4356788,0),(0,0),(0,0),(8,0)
有人知道我的问题在哪里吗? 谢谢!
【问题讨论】:
-
您在
if的范围内声明了新变量acRow...等。您不需要在它们之前使用关键字int。 -
好消息……它总是您想念的简单的东西!这实际上解决了它,谢谢!
标签: c++ arrays loops matrix average