A ideia é que dada a entrada de nomes (competidores) e suas notas, o programa entregue qual é o nome do competidor com a maior nota e também listar, se for o caso, os nomes que têm a mesma nota. Alguém poderia apontar os defeitos do código abaixo e dar uma ideia sobre a resolução do problema ?
#include <stdio.h>
#include <string.h>
int main(){
int i, j, w, cont=0;
float nota[5], win=0;
char nome[5][60];
for( i=0 ; i<5 ; i++ ) { //entrada de nomes e notas
printf("Digite o nome do %dº competidor: ",i+1);
scanf("%s", &nome[i]);
printf("Agora digite a nota do %dº competidor: ",i+1);
scanf("%f", ¬a[i]);
if( nota[i]>10 || nota[i]<0 ) { //nota invalida
while( nota[i]>10 || nota[i]<0 ) {
printf("Nota inválida!!!\n=== Notas válidas entre zero(0) e dez(10)!! ===\nDigite novamente a nota do %dº competidor: ",i+1);
scanf("%f",¬a[i]);
}
}
}
for(i=0;i<5;i++){ //verifica a maior nota, porém não considera notas iguais
if(nota[i]>win){
win=nota[i];
w=i;
}
}
for(i=0;i<5;i++){ //teste p/ verificar as comparações
for(j=i+1;j<5;j++){
if(nota[i]==nota[j]){
cont++;
printf("%.0f %.0f=========>> %d = i e %d=j\n",nota[i],nota[j],i,j);//valida
}
else
printf("%.0f %.0f // %d = i e %d=j\n",nota[i],nota[j],i,j); //não valida
}
}
printf("=== O Competidor com a Maior Nota foi %s ===\n",nome[w]);
return 0;
}