Ir ao conteúdo

Posts recomendados

Postado

O programa tem que fazer isso, ta rodando bem mas nao aparece a menor media geral.  

.

 

Crie uma estrutura representando os alunos da turma. A estrutura deve conter a matrícula do aluno, nome, nota da primeira prova, nota da segunda prova e nota da terceira prova.
a) Permita ao usuário entrar com os dados de 5 alunos.
b) Encontre o aluno com maior nota da primeira prova.
c) Encontre o aluno com maior média geral.
d) Encontre o aluno com menor média geral
e) Para cada aluno diga se ele foi aprovado ou reprovado, considerando o valor 6 para
aprovação.

 

#include<stdio.h>
#include<stdlib.h>

struct alunos {
 char matricula[10];
 char nome[50];
 float nota[3];
};


int main(){

 struct alunos a[5];
 int i,  maiornota1_indice, maiormediageral_indice, menormediageral_indice;
 float maiornota1=0,mediageral[5], maiormediageral=0, menormediageral;

 printf("\nCADASTRO\n\n");

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


    printf("\n\nDigite a matricula do %do Aluno: ",i+1);
    scanf("%s",&a[i].matricula);
    printf("Nome do %d Aluno: ",i+1);
    scanf("%s",&a[i].nome);
    printf("Nota 1: ");
    scanf("%f",&a[i].nota[0]);
    printf("Nota 2: ");
    scanf("%f",&a[i].nota[1]);
    printf("Nota 3: ");
    scanf("%f",&a[i].nota[2]);

    mediageral[i] = a[i].nota[0]+a[i].nota[1]+a[i].nota[2];

    if(maiornota1<a[i].nota[0]){

        maiornota1 = a[i].nota[0];

        maiornota1_indice = i;
        printf("\nAluno com maior Nota 1: %s",a[maiornota1_indice].nome);

    }
    
    if(mediageral[i]>maiormediageral){
        maiormediageral = mediageral[i];
        maiormediageral_indice = i;
         printf("\nAluno com maior media: %s",a[maiormediageral_indice].nome);

    }
    if(mediageral[i]<menormediageral){
        menormediageral = mediageral[i];
        menormediageral_indice = i;
        printf("\nAluno com menor media: %s",a[menormediageral_indice].nome);

    }

 };

    
   
    

    int j=0;
    for(j=0; j<5; j++){

        if(mediageral[j]<=6){

            printf("\nAluno %s REPROVADO\n",a[j].nome);
        }else {
            printf("Aluno %s APROVADO\n",a[j].nome);
        }

    }




system("pause");
return 0;
}

 

Postado

Mano, boa tarde. Abaixou vou colocar  algumas dicas que podem ajudar:

 

a) criar variavel float media para armazenar a media de cada aluno

b) criar variavel float MaiorMediaGeral=0 e a cada vez que a media de um aluno for calculada fazer comparacao com ela.

se media > MaiorMediaGeral entao MaiorMediaGeral = media . Pode fazer o mesmo esquema para pegar a maior nota da primeira prova, a segunda maior media e a menor tambem. só inverter o operador logico de > para <.

ao final você ja  vai ter os dados e é so exibir. nem precisa FOR nem nada.

c) depois de fazer a leitura da terceira nota de cada aluno, ja pode fazer a media e dizer se foi aprovado e reprovado, isso vai diminuir a complexidade e o tamanho do codigo

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!