Ir ao conteúdo

C Condicionais IF em Linguagem C


Ir à solução Resolvido por Lucca Rodrigues,

Posts recomendados

Postado
main()
{
    float x,y;
    printf("Digite as duas notas: ");
    scanf("%f%f", &x, &y);
    if(x<0 || x>10 && y<0 || y>10)
    {
        printf("Valor incorreto tente novamente.");
    }else{printf("As notas sao validas.\nA media das notas eh: %d",(x+y)/2);}
}

Faça um programa que leia 2 notas de um aluno, verifique se as notas s˜ao v´ alidas e
exiba na tela a média destas notas. Uma nota válida deve ser, obrigatoriamente, um
valor entre 0.0 e 10.0, onde caso a nota n˜ao possua um valor v´ alido, este fato deve ser
informado ao usu´ ario e o programa termina.

 

Minha duvida eh a seguinte, eu já resolvi esse problema bem fácil, mas queria saber se há uma maneira de fazer apenas com um IF, como eu tentei fzr acima.

  • Curtir 1
  • Solução
Postado

@Malcolm X

O valor inválido ocorre caso: nota1 < 0 ou nota1 > 10 ou nota2 < 0 ou nota2 > 10.

Não tem E lógico no meio, talvez por isso tenha ocasionado o erro. Se tiver um E lógico, é esperado que 2 situações ocorram, que no caso seria ambas as notas possuírem valor inválido, para acusar erro. Trocando E por OU, se ao menos 1 das notas possuir valor inválido, já acusa erro.

 

20 minutos atrás, Malcolm X disse:

printf("Valor incorreto tente novamente.");

Não imprima "tente novamente", leia o enunciado:

20 minutos atrás, Malcolm X disse:

este fato deve ser informado ao usuário e o programa termina

Simplesmente imprima "valor inválido" e retorne 0.

 

O identificador nessa função printf() está errado:

20 minutos atrás, Malcolm X disse:

printf("As notas sao validas.\nA media das notas eh: %d",(x+y)/2);

As variáveis são do tipo float, use %f ou algo como %.2f caso queira limitar as casas após a vírgula.

  • Curtir 3
Postado

@Lucca Rodrigues Resolvido haha muito obrigado. Segue o código.

main()
{
    float x,y;
    printf("Digite as duas notas: ");
    scanf("%f%f", &x, &y);
    if((x<0 || x>10) || (y<0 || y>10))
    {
        printf("Valor incorreto.");
    }else{printf("As notas sao validas.\nA media das notas eh: %.2f",(x+y)/2);}
}

 

  • Curtir 2

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!