Encontre n maiores elementos de uma matriz

Eu tenho uma matriz

A[4]={4,5,9,1}

Eu preciso que daria os 3 primeiros elementos principais, como 9,5,4

Eu sei como encontrar o elemento max, mas como encontrar o 2º e o 3º max?

ou seja, se

max=A[0]
for(i=1;i<4;i++)
{
  if (A[i]>max)
  {
    max=A[i];
    location=i+1;
  }
}

na verdade, a classificação não será adequada para meu aplicativo porque,

o número da posição também é importante para mim, ou seja, eu tenho que saber em quais posições os 3 primeiros máximos estão ocorrendo, aqui está na 0ª, 1ª e 2ª posição ... então estou pensando em uma lógica

que depois de obter o valor máximo, se eu pudesse colocar 0 nesse local e aplicar as mesmas etapas para essa nova matriz, ou seja, {4,5,0,1}

Mas estou um pouco confuso sobre como colocar minha lógica no código

questionAnswers(4)

yourAnswerToTheQuestion