Não entendi isso aí. você tá testando se o imc é menor ou igual a 25, porém antes você atribui o valor 20 pra ele.
Acho que você quis escrever:
if ((paciente1.imc >= 20.0) && (paciente1.imc <= 25.0))
Se foi essa sua intenção...
Dá uma olhada os outros testes tb...
Isso deveria varrer seu array procurando pelos aprovados?
Se for, então isso não vai funcionar. Se o cara da nota[0] for menor que 6, seu loop nem executa.
Deveria ser algo tipo:
for (int i = 0; i < sizeof(nota) / sizeof(nota[0]); i++)
{
cout<<" "<<nome[i]<<endl;
temp = i; //Não entendi pra que serve isso aqui.
}