Informática, perguntado por 01A3837B2021, 4 meses atrás

Faça um programa que em C que leia os dados de 10 alunos (Nome, matricula, Média Final), armazenando em um vector. Uma vez lidos os dados, divida estes dados em 2 novos vectores, o vector dos aprovados e o vector dos reprovados, considerando a média mínima para a aprovação como sendo 5.0. Exibir na tela os dados do vector de aprovados, seguido dos dados do vector de reprovados.

Soluções para a tarefa

Respondido por matheusnascimento20
1

Resposta:

Eu iniciei aqui, mas precisa testar algumas coisas , eu acho que está quase pronto, se você não conseguir terminar eu tento editar depois, espero que essa base te ajude nos seus estudos.

Explicação:

#include <stdio.h>

#include <string.h>

   

typedef struct ALUNOS{

   char nome[30];

   int matricula;

   float media_final;

}alunos;

void Organiza(alunos *aluno);

int Contador(alunos *aluno);

int main(){

       alunos novo_aluno[10];

       int x;

       for(x=0;x<10;x++){

           printf("Insira o nome do aluno:\n");

           scanf("%s",&novo_aluno[x].nome);

           printf("Insira a matricula:\n");

           scanf("%d",&novo_aluno[x].matricula);

           printf("Insira a media final:\n");

           scanf("%f",&novo_aluno[x].media_final);

       }

       Organiza(novo_aluno);

   return 0;

}

void Organiza(alunos *aluno){

   int x,y,a,r;

   if(Contador(aluno) > 0){

       a = Contador(aluno);

       r = 10 - Contador(aluno);

   }

   alunos aprovados[a];

   alunos reprovados[r];

   for(x=0;x<10;x++){

       if(aluno[x].media_final >= 5.0){

           aprovados[x].media_final = aluno[x].media_final;

       }else{

           reprovados[x].media_final = aluno[x].media_final;

       }

   }

   for(y=0;y<a;y++){

           printf("Aprovados : Nome=> %s Matricula=> %d Media Final=> %.2f\n\n",aprovados[y].nome,aprovados[y].matricula,aprovados[y].media_final);    

   }

   for(y=0;y<r;y++){

           printf("Reprovados: Nome=> %s Matricula=> %d Media Final=> %.2f\n",reprovados[y].nome,reprovados[y].matricula,reprovados[y].media_final);

   }

}

int Contador(alunos *aluno){

   int num = 0;

   int x;

       for(x=0;x<10;x++){

           if(aluno[x].media_final >= 5.0){

               num++;

           }

       }

   return num;

}

Perguntas interessantes