C++ 数组最小值和最大值下标查找代码
C++ 数组最小值和最大值下标查找代码
以下代码展示了如何使用 C++ 查找数组中最小值和最大值的下标。
#include <iostream>
#include <cmath>
using namespace std;
void find(int* arr, int len, int* minpos, int* maxpos)
{
int minVal = arr[0];
int maxVal = arr[0];
int minIdx = 0;
int maxIdx = 0;
for (int i = 0; i < len; i++)
{
if (arr[i] < minVal)
{
minVal = arr[i];
minIdx = i;
}
if (arr[i] > maxVal)
{
maxVal = arr[i];
maxIdx = i;
}
}
*minpos = minIdx;
*maxpos = maxIdx;
}
int main()
{
int len;
cin >> len;
int a = 0;
int b = 0;
int* arr = new int[len]();
for (int j = 0; j < len; j++)
{
cin >> arr[j];
}
find(arr, len, &a, &b);
cout << a << ',' << b << endl;
delete[] arr;
return 0;
}
代码说明:
-
函数
find:- 接受数组指针
arr、数组长度len以及指向最小值下标和最大值下标的指针minpos和maxpos。 - 初始化
minVal和maxVal为数组第一个元素,minIdx和maxIdx为 0。 - 遍历数组,比较每个元素与
minVal和maxVal,更新最小值和最大值以及对应下标。 - 最后将
minIdx和maxIdx赋值给minpos和maxpos。
- 接受数组指针
-
主函数
main:- 输入数组长度
len。 - 动态分配数组内存。
- 输入数组元素。
- 调用
find函数查找最小值和最大值下标。 - 打印最小值和最大值下标。
- 释放数组内存。
- 输入数组长度
使用方法:
- 编译并运行代码。
- 输入数组长度,然后输入数组元素。
- 程序将输出最小值和最大值的下标。
示例:
输入:
5
10 5 8 12 2
输出:
4,3
注意:
- 代码使用了动态内存分配,请确保在程序结束时释放内存。
- 代码中
cmath库未被使用,可以删除。 - 代码可以根据需求修改,例如添加异常处理等功能。
原文地址: https://www.cveoy.top/t/topic/Ngb 著作权归作者所有。请勿转载和采集!