É melhor seguir as instruções do amigo acima, mas seu código está no rumo certo. Basta algumas modificações. Coloque todos os cálculos dentro do laço, vou te dar um exemplo: // aqui
if ((a[i].prova1>=3.0) && (a[i].prova2>=3.0)) // esse aluno já foi aprovado, então:
{
media = (a[i].prova1 + a[i].prova2) / 2;
cout << "Aluno " << a[i].nome << " Aprovado com media: " << media;
}
// aqui finaliza a unica situacao que o aluno passa direto. Media >= 5.0 e prova1 >= 3.0 e prova2 >= 3.
else
{
} agora dentro do else, voce deve pedia a nota de prova3, verificar quem é maior prova1 ou prova2, fazer o cálculo da média e exibir os resultados. ;)