我正在尝试编写一个程序来查找并打印此二维数组中的所有局部最大值,仅查看第二列。认为我在正确的轨道上,但不知道如何继续,并没有给出正确的输出。谢谢。C++在二维数组中寻找局部最大值
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;
}
它给出了什么输出,你期望的输出是什么? – Erik
本地最大值为15,但很明显需要22,16和19而不是 – America32
“所有本地最大值”,但您的输出是单个“localmax”......所以这是什么? –