Ir ao conteúdo
  • Cadastre-se

C aluno com a pior e com a melhor nota e calcular média. como fazer?


Manu Duarte

Posts recomendados

Oi. O exercicio é o seguinte: Pretende-se recolher dados de alunos indicando por cada aluno, o número e a sua nota a uma dada cadeira. A recolha de informação apenas deve terminar quando o número de aluno for igual a 0 (zero). No fim, deve apresentar a informação do aluno com a pior e com a melhor nota, bem como a média de todos os alunos. Elabore o respetivo algoritmo.

 

e eu tenho isto.

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

int main()
{
    int numero, nota, maior, menor;
    do{
        printf ("Introduza o seu numero de aluno. Para finalizar introduza 0\n");
        scanf ("%d",&numero);
        printf ("Introduza a sua nota Na cadeira\n");
        scanf ("%d", &nota);
        maior=nota;
        menor=nota;
        if (nota>maior)
        {
            maior=nota;
        }

        if (nota<menor)
        {
            menor=nota;
        }

    }while (numero != 0);

    printf ("A melhor nota e %d\n", &maior);
    printf ("A pior nota e %d\n", &menor);
    return 0;
}

O problema é que quando ponho o numero 0 ele continua pedindo nota da cadeira e so depois que finaliza. Ja tentei por o while sem o do e continua sem dar. Alem de que ele não consegue calcular a melhor nota nem a pior, da-me sempre 0

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Manu Duarte disse:

Ja tentei por o while sem o do e continua sem dar.

Isso realmente não existe em nenhum livro, apenas na cabeça do programador que determina o melhor das duas  estrategias para o problema. Outra coisa, é só olhar onde fica o  scanf ("%d",&numero); o que vem antes, principalmente o que vem depois e do que depende.

 

 

 

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

@Manu Duarte

 

Eu perguntaria ao usuario quantos alunos serão lidos a nota. E resolveria com um for, pois para mim o programa vai parar quando não tiver mais aluno para ler a nota, ou seja, zero alunos.

 

E guardaria as notas num vetor, para assim eu ter como comparar a melhor e pior nota. E depois fazer a media.

(MAS DA PARA RESOLVER SEM SER ASSIM)

 

Um erro que tambem apresenta no seu programa e na hora de mostrar a maior e menor nota. Nao se utiliza o operador &, ao menos que queira ver o endereco de memoria, mas ainda teria que usar o formatador %p.

 

 

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

int main()
{
    int numero=0, nota=0, maior=0, menor=0, i=0;  // INICIALIZANDO COM ZERO
    do{
        printf ("Introduza o seu numero de aluno. Para finalizar introduza 0\n");
        scanf ("%d",&numero);
        if(numero==0)  // AQUI O PROGRAMA IRA PARA DE EXECUTAR CASO O NUMERO DIGITADO SEJA ZERO.
        break;
        printf ("Introduza a sua nota Na cadeira\n");
        scanf ("%d", &nota);
        if(i==0){       // AQUI FOI PARA SOMENTE NA PRIMEIRA VEZ O PROGRAMA ATRIBUIR O VALOR DA NOTA AS VARIAVEIS, OU TODA VEZ QUE 
          maior=nota;    // QUE FOSSE LER ELE IA ATRIBUIR
          menor=nota;
        }
        i++;
      
        if (nota>maior)
        {
            maior=nota;
        }

        if (nota<menor)
        {
            menor=nota;
        }

    }while (numero != 0);

    printf ("A melhor nota e %d\n", maior);  // NAO SE UTILIZA O '&' PARA MOSTRAR O CONTEUDO DA VARIAVEL
    printf ("A pior nota e %d\n", menor);
    return 0;
}

 

COMENTEI O CÓDIGO, ESPERO QUE CONSIGA ENTENDER E CONTINUE ESTUDANDO.

Link para o comentário
Compartilhar em outros sites

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

 

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!