📅  最后修改于: 2023-12-03 15:10:47.690000             🧑  作者: Mango
如果你需要在一个数组中查询具有最小值 X 的最小索引,可以使用以下代码片段。该代码通过遍历数组,记录当前最小值和它的索引值,如果遇到值为 X 的元素,它的索引将与当前的最小索引进行比较,如果比当前的最小索引更小,则更新最小索引值。最终返回最小索引,即具有最小值 X 的最小索引。
int findMinIndex(int arr[], int size, int X) {
int minIndex = size; // 初始化最小索引为数组长度
int minValue = INT_MAX; // 初始化最小值为 int 类型最大值
for (int i = 0; i < size; i++) {
// 如果当前值小于最小值,则更新最小值和最小索引
if (arr[i] < minValue) {
minIndex = i;
minValue = arr[i];
}
// 如果当前值等于 X 且索引小于最小索引,更新最小索引
if (arr[i] == X && i < minIndex) {
minIndex = i;
}
}
// 如果最小索引值不等于数组长度,说明存在最小值 X,返回最小索引值
if (minIndex != size) {
return minIndex;
}
// 如果最小索引值等于数组长度,说明数组中不存在值为 X 的元素,返回 -1
return -1;
}
需要注意的是,如果最小索引值等于数组长度,说明数组中不存在值为 X 的元素,此时返回 -1。如果你需要查询具有最小值的所有索引,可以在找到第一个最小索引后,继续遍历数组,将所有值为最小值的索引加入一个数组中,最终返回该数组。