Ir ao conteúdo
  • Cadastre-se

Programa em C que mostre o nome do aluno com maior nota


Posts recomendados

Boa noite galera, estou com uma dúvida nessa parte do meu código em NEGRITO, ela era para pegar a maior nota da primeira prova e por ela puxar o nome do aluno que a obteve ! podem me ajudar ?

Faça um programa em C que utilize uma estrutura representando os alunos da disciplina de Programação Estruturada. A estrutura deve conter a matrícula do aluno, nome, nota da primeira prova, nota da segunda prova e nota da terceira prova. A turma possui 30 alunos. O programa deve:

(a) Encontrar e exibir o nome do aluno com maior nota da primeira prova.

 

#include <stdio.h>

typedef struct {
        int matricula;
        char nome[100];
        float nota1;
        float nota2;
        float nota3;
    } Aluno;

float res = 0;
#define QUANTIDADE_DE_ALUNOS 2

int main(){
        Aluno alunos[QUANTIDADE_DE_ALUNOS];

        printf("Dados: nome(sem espacos), matricula, nota1, nota2, nota3\n");
        for(int i=0; (i < QUANTIDADE_DE_ALUNOS); i++){
                printf("\nInforme os dados dos alunos(%i): ",i+1);
                scanf("%s %i %f %f",alunos[i].nome, &alunos[i].matricula,
                        &alunos[i].nota1, &alunos[i].nota2);
                        }

        printf("\n O nome do aluno com maior nota da primeira prova."); // essa parte que estou com problema ...
        for(int i=0; (i < QUANTIDADE_DE_ALUNOS); i++){
                if (res = alunos[i].nota1 < alunos[i].nota1){
                   	printf("\n Nome do aluno: %s", alunos[i].nome); 
            }
                          
						
		}

        getchar();
        return 0;
}

 

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

Para postar códigos use a tag CODE apertando o botão <> no topo do campo de respostas, assim você preserva a formatação do código e evita que o fórum faça alterações nele.

Por exemplo, o fórum "comeu" todos os [ i ] (sem espaços) do seu código, pois no fórum isso é a tag para deixar o texto em itálico, então o texto do seu código está em itálico a partir do primeiro que foi encontrado (os demais apenas somem porque o texto já tá em itálico).

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

Bom eu fiz ele imprimir todos que tiverem a nota maior, se só tiver 1 ele só vai imprimir 1:

#include <stdio.h>

typedef struct {
    int matricula;
    char nome[100];
    float nota1;
    float nota2;
    float nota3;
} Aluno;

float res = 0;
#define QUANTIDADE_DE_ALUNOS 2

int main() {
    Aluno alunos[QUANTIDADE_DE_ALUNOS];
    int i;
    float maiornota1 = 0;

    printf("Dados: nome(sem espacos), matricula, nota1, nota2, nota3\n");
    for(i=0; (i < QUANTIDADE_DE_ALUNOS); i++) {
        printf("\nInforme os dados dos alunos(%i): ",i+1);
        scanf("%s %i %f %f %f%*c",alunos[i].nome, &alunos[i].matricula,
              &alunos[i].nota1, &alunos[i].nota2, &alunos[i].nota3);
        //Esse if checa todas as notas 1 conforme elas vão sendo entradas
        //e atualiza o valor da maior nota 1 se achar uma nota maior:
        if (alunos[i].nota1 > maiornota1)
            maiornota1 = alunos[i].nota1;
    }

    printf("\n O(s) nome(s) do(s) aluno(s) com maior nota da primeira prova."); // essa parte que estou com problema ...
    for(i=0; (i < QUANTIDADE_DE_ALUNOS); i++) {
        //Agora basta checar todas notas 1 e imprimir o nome do aluno cuja
        //nota 1 for igual ao valor guardado como a maior nota 1:
        if (maiornota1 == alunos[i].nota1) {
            printf("\n Nome do aluno: %s", alunos[i].nome);
        }
    }

    getchar();
    return 0;
}

Se quiser que ele imprima apenas 1 basta fazer ele sair do for quando encontrar o primeiro usando um "break;" dentro do if...

  • Curtir 2
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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!