查找n个整数中的最大值,如果最大值多个,输出首次出现的位置

#include<stdio.h>
#include<stdlib.h>
int main()
{
int n,i,j,max[30]={0},min,count[30]={0};
int a[35]={0};
while(scanf("%d",&n)!=EOF)
{
for(i=1;i<n+1;i++)/*比出最大值*/
{
scanf("%d ",&a[i]);
}
for(i=1;i<n+1;i++)
{
max[i]=a[i];
for(j=1;j<n+1;j++)
{
if(a[j]>max[i])
count[i]=j;/记下最大值的位置/
if(a[j]==max[i])
count[i]=i;
}

    }
    min=count[1];
    for(i=1;i<=n;i++)/*比出哪个最大值位置最小*/
    {
       if(count[i]<=min)
       {
           min=count[i];
       }
    }
  printf("%d",min);
  printf("\n");
  n=0;
}
  return 0;

}
输出的结果不对,哪里错了?

#include<stdio.h>
int max_number(int a[], int n)
{
    int i, j=0;
    for (i = 1; i < n; i++)
    {
        if (a[i] > a[j])
            j = i;
    }
    return (j + 1);
}
main()
{
    int a[100], n,max,i;
    scanf_s("%d", &n);
    for (i = 0; i < n; i++)
        scanf_s("%d", &a[i]);
    max = max_number(a, n);
    printf("%d", max);

}


就这么个功能,你能写出这么多行数?
首次出现很容易啊,你只要比较的时候要求后面的值必须大于当前max才修改max不就行了吗?为啥要把最大值相同的都搞出来还比较呢??