Ir ao conteúdo

Posts recomendados

Postado

Olá! Preciso de ajuda pra encontrar o erro no código a seguir. Ele exibe as notas e a situação dos alunos. Além disso, foi pedido q mostrasse o maior valor do vetor, mas ele mostra o mesmo valor da média.

5b1b38a576a32_Semttulo.png.a10467142d8f5ca9f1dbad7897ecddd5.png

 

O código:

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

int main(){

    int matricula[45], contador, i, n;
    float mediaDireta[45], mediaProvaFinal[45], nota1, nota2, nota3, vetor[45], vetor2[45], vetor3[45], notaFinal[45];
    float vetor4[45], vetorRecu[45], soma, mediaTurma, maior;

    contador = 0;
    soma = 0;
    n = 2;

    for(i = 0; i < n; i++){
        printf("Qual e a matricula do aluno? \n");
        scanf("%d", &matricula[i]);
        printf("\nQual foi a nota da primeira prova? \n");
        scanf("%f", &vetor2[i]);
        printf("\nQual foi a nota da segunda prova? \n");
        scanf("%f", &vetor3[i]);
        printf("\nQual foi a nota da terceira prova? \n");
        scanf("%f", &vetor4[i]);

        mediaDireta[i] = ((4*vetor2[i]) + (3*vetor3[i]) + (3*vetor4[i]))/10;

        if(mediaDireta[i] < 7 && mediaDireta[i] >= 4){
            printf("Qual a nota da Prova Final do aluno %d? \n\n", matricula[i]);
            scanf("%f", &vetorRecu[i]);
            mediaDireta[i] = (mediaDireta[i] + vetorRecu[i])/2;
        }

        soma = mediaDireta[i] + soma;


    }

    for(i = 0; i < n; i++){
        if(mediaDireta[i] >= 6){
            printf("\n%d      Aprovado       %f \n\n", matricula[i], mediaDireta[i]);
        }
        else{
            printf("\n%d      Reprovado       %f \n", matricula[i], mediaDireta[i]);
        }
    }
    maior = mediaDireta[0];

    for(i = 0; i < n; i++){
        if(mediaDireta[i] > maior){
            maior = mediaDireta[i];
        }
    }
    mediaTurma = soma/n;
    printf("A media da turma e %.2f \n", mediaTurma);
    printf("A maior nota foi %.2f \n"), maior;


return 0;
}

 

 

  • Obrigado 1
Postado

@Hello_World   olá,   para postar seu código é melhor usar o botão   <>   que está lá na barra de ferramentas da janela de responder , pois senão seu código fica faltando alguns caracteres  como os   [ i ]  que sumiram do seu código  e assim quando copiamos ele não funciona sem esses caracteres ,  mas pelo que vi faltou você inicializar a variável maior , pois você colocou que maior é igual a mediadireta[0] mas esse vetor também não foi inicializado, então inicialize a variável maior com valor zero  .

  • Curtir 3
Postado

@Hello_World    você quer mostrar o maior valor do vetor de notas ou de media ?  , pois se você está comparando com o vetor de media então ele vai mostrar o valor da maior media , mas se você quer mostrar o valor da maior nota então precisa compara com o vetor de notas .

  • Curtir 2
  • 5 anos depois...
Postado

@Hello_World

 

Boa Noite!

 

Compila!

c'11 - gcc'11.4


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

int main (void) {
  int n= 2;
  printf ("Entre com um decimal como quantidade de alunos? ");
  for ( ; ; ) {
    int r= getchar ();
    if (r=='\n' || '-'==r) continue; 
    ungetc (r,stdin);
    r= scanf ("%d",&n);
    if (r==EOF) {
      perror ("Falha na leitura da quantidade");
      return 1;
      }
    if (r==1) break;
    while (EOF!=(r= getchar ()) && '\n'!=r);
    }
  printf ("%s%d%s%c","... registar ",n," aluno(s)",'\n');
  int matricula[n];
  double vetor2[n] ,vetor3[n] ,vetor4[n] ,mediaDireta[n] ,vetorRecu[n];
  double soma= 0;
  for (int i= 0 ; i<n ; i++) {
    printf("Qual e a matricula do aluno? \n");
    scanf("%d", &matricula[i]);
    printf("\nQual foi a nota da primeira prova? \n");
    scanf("%lf", &vetor2[i]);
    printf("\nQual foi a nota da segunda prova? \n");
    scanf("%lf", &vetor3[i]);
    printf("\nQual foi a nota da terceira prova? \n");
    scanf("%lf", &vetor4[i]);
    
    mediaDireta[i]= (4* vetor2[i]+ 3* vetor3[i]+ 3* vetor4[i])/ 10;
    
    if (mediaDireta[i] < 7 && mediaDireta[i] >= 4){
      printf("Qual a nota da Prova Final do aluno %d? \n\n", matricula[i]);
      scanf("%lf", &vetorRecu[i]);
      mediaDireta[i]= (mediaDireta[i]+ vetorRecu[i])/ 2;
      }
      soma= mediaDireta[i]+ soma;
     }
    for (int i= 0 ; i<n ; i++) {
      if (mediaDireta[i]>=6)
        printf("\n%d      Aprovado       %f \n\n", matricula[i],
                                                mediaDireta[i]);
          else
        printf("\n%d      Reprovado       %f \n", matricula[i], mediaDireta[i]); 
      }
  double maior= mediaDireta[0];
  for (int i= 0 ;i <n; i++ ) 
    if (mediaDireta[i]>maior)
      maior = mediaDireta[i];
  double mediaTurma= soma/ n;
  printf("A media da turma e %.2f \n",mediaTurma);
  printf("A maior nota foi %.2f \n",maior);
  return 0;
  }

 

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!