C语言求最大值及其下标

为什么是部分正确呀,求解

img

#include

int main()
{
int n,i,t=0,m=0;
int number[11];
scanf("%d", &n);

for(i = 0 ;i < n; i++)
{
    scanf("%d", &number[i]);
}
i--;
t = number[i];
for(i = i - 1 ;i > 0 ;i--)
{
    if(t <= number[i])
    {
    t = number[i];
    m = i;
    }
}

printf("%d %d",t,m);

return 0;

}

i--;
t = number[i];
for(i = i - 1 ;i > 0 ;i--)
这几句有点问题,漏了0和n-1的数,改为
i--; // i = n - 1
m = i; //漏了 m=i=n-1
t = number[i];
for(i = i - 1 ;i >= 0 ;i--) //漏了0

#include"iostream"
using namespace std;



int main()
{
    int a[100], n, i, max,sign;
    cin >> n;
    for (i = 0;i < n;i++)
        cin >> a[i];
    max = a[0];
   for (i = 1;i < n;i++)
  
   {
        if (a[i] > max)
            max = a[i];
   }
        cout << max;
    for (i =n-1;i>=0;i--)
    {
        if (a[i] == max)
         sign=i; }

  cout<<" "<<sign;  
}