Ir ao conteúdo
  • Cadastre-se

C Condicionais IF em Linguagem C


Malcolm X
Ir à solução Resolvido por Lucca Rodrigues,

Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

  • Solução

@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
Link para o comentário
Compartilhar em outros sites

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