Informática, perguntado por bologordo13, 10 meses atrás

Escreva um algoritmo em C que:
a) leia 100 fichas, onde cada ficha contém o número de matrícula e a nota de cada aluno de um determinado curso;
b) determine e imprima as duas maiores notas, juntamente com o número de matrícula do aluno que obteve cada uma delas;
c) Suponha que não exista dois ou mais alunos com a mesma nota

ALGUÉM PODERIA ME AJUDAR?!!!

Soluções para a tarefa

Respondido por oliveirapedroo
1

Resposta:

#include <stdio.h>

#include <string.h>

int main(){

   int i,pos=0,pos2=0;

   float ma=0.0,ma2=0.0;

   for(i=0;i<100;++i){

       int id;

       float nota;

       printf("Digite o número da matrícula do aluno %d:\n",i+1);

       scanf("%d",&id);

       printf("Digite a nota do aluno %d:\n",i+1);

       scanf("%f",&nota);

       if(nota>ma){

           ma2=ma;

           pos2=pos;

           ma=nota;

           pos=id;

       }

       else if(nota>ma2){

           ma2=nota;

           pos2=id;

       }

   }

   printf("O aluno com maior nota é: %d\nCom nota: %f\nO aluno com a segunda maior nota é: %d\nCom nota: %f\n",pos,ma,pos2,ma2);

}

Explicação:


bologordo13: Só tem uma coisa no final quando ele exibi a frase "o aluno com a maior nota é" ao invés de aparecer o número de matricula, está aparecendo 0, você sabe o porque?
oliveirapedroo: é só trocar os ">" por ">="
Perguntas interessantes