Eu preciso terminar esse código como diz no enunciado a baixo, só que não consigo fazer o programa me devolver a maior nota e o nome do aluno
sempre é do final do bloco de notas, nunca o da maior nota, alguém poderia ajudar, dar uma luz do que eu deveria fazer...
Enunciado:
Faça um programa que receba do usuário um arquivo que contenha
o nome e a nota de diversos alunos (da seguinte forma: NOME:
JOAO NOTA: 8), um aluno por linha. Mostre na tela o nome e a
nota do aluno que possui a maior nota.
#include <stdio.h>
#include <stdlib.h>
//
int main(){
char nome[50];
float nota = 0.0;
float maior =0.0;
int linha=1;
FILE *f = fopen("alunos.txt", "r"); // Arquivo ja criado manualmente cotendo as notas e nomes dos alunos
if(f==NULL) {
printf("ERRO NA ABERTURA\n");
system("pause");
exit(0);
}
while(!feof (f)){
fscanf(f, "%s %f ", &nome, ¬a );
if (nota>maior)
{maior=nota;}
else
{maior=maior;}
}
printf("NOME - %s NOTA(maior) - %.1f \n",nome, maior);
fclose(f);
system ("pause");
return 0;
}
alunos.txt