Guarda quà
if(v[i]>max)
{
max=v[i];
pos=i;
}
Se invece di usare >= usi solo > tu sai che il massimo trovato è il primo. A sto punto rifai la stessa procedura partendo dalla posizione pos+1 fino alla fine. Una cosa del tipo:
#include <stdio.h>
#include <stdlib.h>
int trovaMax(int *max,int v[], int *pos, int size)
{
int i = *pos;
int trovato = 0;
for(; i < size; i++)
{
if(*max < v[i])
{
*max = v[i];
*pos = i;
trovato = 1;
}
}
if(trovato == 0)
return -1;
(*pos)++;
return *pos;
}
int main()
{
int v[] = {3, 5, 7, 3, 7,7,3,1,7,4,5,7};
int pos = 0;
int max = 0;
while(trovaMax(&max,v,&pos,12) != -1)
{
printf("il max si trova nella posizione %d del valore %d\n", pos, max);
max = 0;
}
return 0;
}