c++求最大值和最小值及其两个数的位置

题目描述
从键盘上读入n个整数,从这n个整数中找出最大值和最小值,以及最大值和最小值的位置。

输入格式
第一行一个整数n(n<100);
第二行n个以空格相隔的整数(每个数在[1,1000])。

输出格式
第一行最大值和最大值的位置,它们之间以空格相隔;
第二行最小值和最小值的位置,它们之间以空格相隔;

样例输入
5
5 3 6 2 4
样例输出
6 3
2 4


#include <stdio.h>
#include <iostream>
using namespace std;

int main()
{
    int n,i;
    cin >> n;
    int a[n];
    for(i = 0;i < n;i++){
        cin >> a[i];
    }
    int max = a[0],maxIndex = 0,min = a[0],minIndex = 0;
    for(i = 1;i < n;i++){
        if(a[i] > max){
            max = a[i];
            maxIndex = i;
        }
        if(a[i] < min){
            min = a[i];
            minIndex = i;
        }
    }
    printf("%d %d\n%d %d",max,maxIndex + 1,min,minIndex + 1);
    return 0;
}

img

#include <iostream>
#include <limits>

int main()
{
    int a[100];
    int n;
    std::cin >> n;
    for (int i = 0; i < n; i++)
        std::cin >> a[i];

    int max = std::numeric_limits<int>::min();
    int min = std::numeric_limits<int>::max();
    int p_max, p_min;
    for (int i = 0; i < n; i++)
    {
        if (a[i] > max)
        {
            max = a[i];
            p_max = i;
        }
        if (a[i] < min)
        {
            min = a[i];
            p_min = i;
        }
    }
    printf("%d %d\n", max, p_max + 1);
    printf("%d %d\n", min, p_min + 1);
    return 0;
}