Ir ao conteúdo
  • Cadastre-se

Como obter a maior nota e o nome do aluno a partir de um arquivo txt?


Posts recomendados

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, &nota );

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

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Olha.. O fscanf funciona de outro jeito... Se você colocar ele crú sem nada, ele vai pegar o que tiver...

 

exemplo:

tomando em base um arquivo assim:

ALUNO: JOÃO

 

fscanf(arquivo, "%s", string);

a string vai receber: "ALUNO:"

 

se for fscanf(arquivo, "%[a-z A-Z 1-9]s", string);

a string vai receber: "ALUNO: JOÃO"

 

agora se você usar

fscanf(arquivo, "ALUNO: %s", string);

a string vai receber: "JOÃO"

 

o fscanf vai ler direto o que está escrito em primeiro...

 

exemplo de Float:

tomando em base um arquivo assim:

NOTA: 7.5

 

fscanf(arquivo, "%f", float);

a variável "recebe" 'N' e não guarda, já que float n guarda caracteres!

 

fscanf(arquivo, "NOTA: %f", &float);

a variável vai receber 7.5

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!