求最大值及其下标最小值的测试点一直过不去

img



#include<iostream>
using namespace std;
int main(){
    int n,a[10],i,j;
    int p=a[0];
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    for(j=0;j<n;j++){
        if(p<a[j]){
           p=a[j];
           i=j;
        }
        else if(p==a[j]){
           p=a[i];
           if(i>j){
               i=j;
           }
        }
    }
    cout<<p<<" "<<i;
    return 0;
}

img
代码是哪里有问题呢,为什么最小值这里一直过不去呢?请教了


#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,a[10];
    int p=INT_MIN,maxi;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    for(int i=0;i<n;i++)
    {
        if(a[i]>p)
        {
            maxi=i;
            p=a[i];
        }
    }
    cout<<p<<" "<<maxi;
    return 0;
}

我帮你看看吧