Ir ao conteúdo

Posts recomendados

Postado

2 Quando falamos de algoritmos, devemos ter em mente que existem diversas maneiras de representa-los. Cada maneira possui suas características e formatos de utilização. Fale quais são as três formas de representação para um algoritmo e descreva brevemente cada um deles, dando exemplos. 
3 Elabore um algoritmo que a realiza a leitura de 10 notas (valores inteiros). Após a leitura de cada nota será preciso apresentar a média aritmética, a maior nota e, a menor nota. 
4 A partir da questão anterior, considere agora que a média para um aluno conseguir aprovação em uma disciplina é 6. Modifique o código elaborado para exibir o total de alunos aprovados, total de alunos reprovados e, o percentual relativo a cada total. 

3 e 4  
#include <stdio.h> 
#define LIM 10 
int main(){ 
float notas[LIM],soma=0.0; 
int i=0; 
do { 
if(i>=LIM){ 
i++; 
break; 
} 
printf("Digite a nota do aluno %d: ",i); 
scanf("%f",&notas); 
if(notas>0) 
soma+=notas; 
} while (notas[i++]>0); 
printf("Media das notas: %.2f\n",soma/(i-1)); 
Printf (“Nenor nota%d\n”, nota>6);  
Printf (“Maior nota%d\n”, nota<6); 
 
 
 
return 0; 
} 

 

  • Curtir 1
Postado

@Zomeplay

52 minutos atrás, Zomeplay disse:

 

Printf (“Nenor nota%d\n”, nota>6);
Printf (“Maior nota%d\n”, nota<6);

 

Não é como se você fosse colocar o printf() pra imprimir uma nota > ou < que 6, e ele adivinhasse qual é a maior e a menor nota, e está errada essa forma de imprimir de qualquer forma, você está fazendo uma comparação dentro do printf().

Use estruturas condicionais para comparar uma variável chamada maior, inicializada com valor -1, e outra chamada menor, inicializada com valor 11, com a nota recém inserida. Se maior < que a nota inserida, maior = essa nota, se menor > que a nota inserida, menor = essa nota. E que isso se repita em toda passagem no loop.

Fora isso, não use “ ”, não são caracteres reconhecidos e vai dar erro. Use " ". A função printf() é com letra minúscula, e se for comentar alguma coisa, assim como fez na primeira linha do algoritmo, lembre de usar //, se não da erro também.

 

Você tem que apresentar a média aritmética, a maior nota e, a menor nota, o total de alunos aprovados, total de alunos reprovados e, o percentual relativo a cada total, certo? A maior e a menor nota você já sabe fazer.

Você não precisa usar um vetor para as notas, faça o seguinte: a nota pode ser um float, daí toda passagem no loop, é atribuído um novo valor, e depois você avalia esse valor: se for >= 6, contador aprovados ++, se for < 6, contador reprovados ++. Para pegar o percentual, contador aprovados * 10 e contador reprovados * 10, depois imprime com um % na frente.

Como o seu loop deve persistir enquanto contador notas <= 10, para toda passagem no loop, faça contador notas ++, media aritmética += nota inserida, e quando sair do loop, media aritmética /= 10.

  • Curtir 1
Postado

@Lucca Rodrigues

#include <stdio.h> 
#define LIM 10 

int main(){ 
    float notas[LIM],soma=0.0; 
    int i=0; 
    do { 
        if(i>=LIM){ 
            i++; 
        break; 
    }     
        printf("Digite a nota do aluno %d: ",i); 
        scanf("%f",&notas); 
            if(notas>0) 
            soma= notas + i++; 
             
    } while (notas[i++]>0); 
    printf("Media das notas: %.2f\n",soma/(i-1)); 
    printf ("Nenor nota%d\n", notas<6);  
    printf ("Maior nota%d\n", notas>6);
     printf("Porcentagem de aprovados: %d%%\n ", notas>6*100/soma); 
    printf("Porcentagem de reprovados: %d%%\n ", notas>6*100/soma); 
 return 0; 
} 

 

 

mais ou menos isso

 

  • Curtir 2
Postado

@Zomeplay Não.

Tipo isso:

#include <stdio.h>
#include <locale.h>

int main(){
    setlocale(LC_ALL, "Portuguese");
    float notas, media = 0, maior = -1, menor = 11; 
    int contadornotas = 0, reprovados = 0, aprovados = 0, i = 0; 
    do {
        i++;
        printf("Digite a nota do aluno %d: ", i); 
        scanf("%f", &notas);
        media += notas;
        if(notas>=6){
            aprovados++;
        } else{
            reprovados++;
        }
        if(maior < notas){
            maior = notas;
        }
        if(menor > notas){
            menor = notas;
        }
        contadornotas++;
    } while (contadornotas < 10);
    media /= 10;
    aprovados *= 10;
    reprovados *= 10;
    printf("Media das notas: %.2f\n", media); 
    printf("Menor nota: %.2f\n", menor);  
    printf("Maior nota: %.2f\n", maior);
    printf("Porcentagem de aprovados: %d%%\n", aprovados); 
    printf("Porcentagem de reprovados: %d%%\n", reprovados); 
    return 0;
}

Você não pode fazer algo como "printf("Porcentagem de aprovados: %d%%\n ", notas>6*100/soma);", além de estar fazendo uma comparação dentro do printf(), está usando apenas 1 identificador para 2 variáveis que nem são do tipo int, ambas são do tipo float.

Leia novamente o que eu disse anteriormente, explicando como resolver o exercício, porque você cometeu os mesmos erros.

  • Obrigado 1

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!