在索引0为0的数组中查找非零最小值C++
Finding Nonzero Minimum in an Array where index 0 is 0 C++
我正在为我的计算机科学课做一个项目,但它要求我在2d数组行中找到最小值,然后返回列的索引,然后搜索具有该列索引的行。我目前正在尝试让它正确查找所有分钟。我现在拥有的函数为所有行找到正确的最小值,除了第一行以零开头。以下是功能:
int ComputeLowestPheromone(int matrix[][SIZE], int visitedColns[], int currRow)
{
int row_min[SIZE];
for(int i = currRow; i < SIZE; ++i)
{
row_min[i] = matrix[i][0];
for(int j = 0; j < SIZE; ++j)
{
if(matrix[i][j] == 0)
{
continue;
}
if(row_min[i] > matrix[i][j])
{
row_min[i] = matrix[i][j];
}
}
}
for(int i = 0; i < SIZE; ++i)
{
cout << "Row Min " << i << ": " << row_min[i] << endl;
}
}
当前输出:CurrentOutput
所以我的问题是,为什么它正确地忽略除第一行之外的所有行的零一旦我解决了这个问题,关于如何正确保存当前索引的提示将非常棒。
从更改初始化
row_min[i] = matrix[i][0];
至
row_min[i] = std::numeric_limits<int>::max();
row_min的分配导致了问题:
row_min[i] = matrix[i][0];
您正在将其初始化为一个零值。
if(row_min[i] > matrix[i][j])
{
row_min[i] = matrix[i][j];
}
尽管您通常使用continue来避免0赋值,但您已经将值赋给了0,并且this if语句将不会运行。将row_min初始化为row_min[i] = 0xffffffff
或std::numeric_limits<int>::max();
0xffffffff假设32位内部
相关文章:
- 在二维数组中查找最小值和最大值?
- 程序以使用 C++ 中的 while 循环查找一组数字的最小值
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- C++ 函数,用于查找传入的 N 个数字的平均值、总和、最小值和最大值
- 需要使用模板查找数组的第二个最小和最小值
- 查找包含 N 个元素的数组的最小值和最大值
- 查找 std::vector 中的最小值和最大值 std::p air
- 在不进行排序的情况下查找数组中n个最小值的索引
- 如何修复错误:使用向量查找最小值和最大值进行合并排序
- 在索引0为0的数组中查找非零最小值C++
- 从C++的用户输入中查找最小值
- 我正在努力在随机数组中查找最小值,有人知道为什么我的代码不起作用?C++
- 有没有办法在递归中使用指针来查找数组的最小值?
- 用于查找ABS的最小值的算法(A [I] A [J] -K)
- 查找测试的最小值和最大值
- 从二维数组中查找最小值和最大值
- 在没有比较运算符的情况下查找 2 个数字之间的最小值
- 在随机数组中查找最小值和最大值
- 在数组 c++ 中查找最小值和最大值
- 查找 for 循环数组C++中存在最大值和最小值的值