21xrx.com
2025-07-07 11:03:34 Monday
文章检索 我的文章 写文章
C++求5个数中的最大值和最小值下标
2023-07-04 16:53:38 深夜i     16     0
C++ 数组 最大值 最小值 下标

在C++编程中,求一个序列中的最大值和最小值并不难,但是如何求出最大值和最小值的下标呢?下面提供一种简单的实现方式。

首先,声明一个长度为5的数组并读取5个数的值。

int a[5];
for(int i=0;i<5;i++){
  cin >> a[i];
}

接着,定义两个变量分别为最大值和最小值,并初始化为数组的首元素。同时,定义两个变量分别为最大值和最小值的下标,并初始化为0。

int max_val = a[0];
int min_val = a[0];
int max_idx = 0;
int min_idx = 0;

接下来,使用for循环遍历整个数组。当数组元素大于最大值时,将该元素作为新的最大值,并记录该元素的下标。当数组元素小于最小值时,将该元素作为新的最小值,并记录该元素的下标。

for(int i=0;i<5;i++){
  if(a[i]>max_val){
    max_val = a[i];
    max_idx = i;
  }
  if(a[i]<min_val){
    min_val = a[i];
    min_idx = i;
  }
}

最后,输出最大值和最小值的下标。

cout << "最大值下标为:" << max_idx << endl;
cout << "最小值下标为:" << min_idx << endl;

完整代码如下:

#include<iostream>
using namespace std;
int main(){
  int a[5];
  for(int i=0;i<5;i++){
    cin >> a[i];
  }
  int max_val = a[0];
  int min_val = a[0];
  int max_idx = 0;
  int min_idx = 0;
  for(int i=0;i<5;i++){
    if(a[i]>max_val){
      max_val = a[i];
      max_idx = i;
    }
    if(a[i]<min_val){
      min_val = a[i];
      min_idx = i;
    }
  }
  cout << "最大值下标为:" << max_idx << endl;
  cout << "最小值下标为:" << min_idx << endl;
  return 0;
}

经过测试,以上代码可正确输出最大值和最小值的下标,适用于任意5个数的求解。

  
  

评论区