21xrx.com
2024-12-22 20:30:40 Sunday
登录
文章检索 我的文章 写文章
C++求5个数中的最大值和最小值下标
2023-07-04 16:53:38 深夜i     --     --
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个数的求解。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复