【发布时间】:2015-04-06 23:32:49
【问题描述】:
我正在尝试编写一个程序来查找并打印此二维数组中的所有局部最大值,仅查看第二列。认为我在正确的轨道上,但不知道如何进行,并且没有给出正确的输出。谢谢。
int main()
{
float array[7][2] = { { 1, 22 }, { 2, 15 }, { 3, 16 }, { 4, 14 }, { 5, 13 }, {6,19}, {7,12} };
int i;
float before = 0, after = 0, localmax = 0;
int Index = 0;
for (i = 0; i<7; i++)
{
if ((array[i][1] >= before) && (array[i][1] >= after))
{
before = array[i-1][1];
after = array[i + 1][1];
localmax = array[i][1];
Index = i;
}
}
cout << "The local maxima in the array are " << localmax << endl;
cout << "The corresponding values in the array are " << array[Index][0] << endl;
_getch();
return 0;
}
【问题讨论】:
-
它给出了什么输出,你期望的输出是什么?
-
局部最大值为 15,但显然需要 22、16 和 19
-
"所有局部最大值",但你的输出是一个单一的 'localmax' ......那么它是什么?
-
是的,我承认我犯了一个错误,因为我毕竟是最大值