Ir ao conteúdo

Posts recomendados

Postado
#include<stdio.h>
#include<stdlib.h>
	
float calcularMediaPonderada(float nota1, float nota2)
{
    float media;
    media = nota1 * 0.4 + nota2 * 0.6; // 0.4 e 0.6 corresponde aos pesos das notas dividido pela soma dos pesos.
    return media;
}

char retornarConceito(float media)
{
    char conceito;
    if (media <= 2.9){
      conceito = 'E';
    }
    else {
      if (media <= 4.9) {
        conceito = 'D';
      }
      else {
        if (media <= 6.9 ){
            conceito ='C';
        }
        
        //else {if (media <= 8.9 ){conceito ='B';}*// quando coloco essa parte no código ele está dando problema
        else{
			conceito = 'A';
        }
      }
    }
  return conceito;
}

int main() {
  int i;
  float nota1, nota2, med;
  char conceito;

  for (i=0; i < 10; i++) {
    printf("\n\nDigite a nota 1:\t");
    scanf("%f", &nota1);
    printf("\nDigite a nota 2:\t");
    scanf("%f", &nota2);
    med = calcularMediaPonderada(nota1,nota2);
    conceito = retornarConceito(med);
    printf("\n\nmédia = %2.f \n\nConceito final = %c", med, conceito);
    printf("\n==============================");
  }
}

 

  • Curtir 1
Postado

image.png.5c01bb0040ea7453c408820bbd9a108f.png

 

Alinhe assim e vai ver que está faltando algo... A chave do if mais externo.

 

provavelmente o mais legível para um if é algo assim

 

if (condicao)
{
    //
}
else
{ 
    // comandos do else
}

 

Em especial quando se está começando e aparecem condições assim dentro de outras e dentro de outras. 

  • Não use else if
  • Sempre use TODAS as chaves
  • Alinhe as chaves com o if
  • Deixe a condição em separado
  • Veja acima a imagem e entenda como os limites ficam claros

De volta ao seu programa

 

a função está excessivamente complicada. Escreva o código em torno dos dados...

 

eis a realidade do que escreveu:
 

char simplesConceito(float media)
{
	if (media <= 2.9) return 'E';
	if (media <= 4.9) return 'D';
	if (media <= 6.9) return 'C';
	if (media <= 8.9) return 'B';
	return 'A';
}

 

Não precisa escrever mais do que isso. São os dados.

 

  • Curtir 1
  • Obrigado 1
Postado
7 minutos atrás, darcio ramires disse:

@arfneto Obrigado! consegui era uma chave faltando e não conseguia ver.

 

:) 👍

 

Na imagem fica claro que falta aquela chave. Alinhe como te expliquei e isso não acontece.

entendeu que está muito complicado do modo que escreveu? comparou com a versão "menor"?

  • Curtir 1
Postado
32 minutos atrás, darcio ramires disse:

vou tentar fazer desse outro jeito que me mostrou achei mais interessante, ainda não aprendi a fazer dessa forma

 

não é "uma forma". É apenas a tabela.Tem uma versão mais otimista:

:)

char simplesConceitoA(float media)
{
	if (media > 8.9) return 'A';
	if (media > 6.9) return 'B';
	if (media > 4.9) return 'C';
	if (media > 2.9) return 'D';
	return 'E';
}

 

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!