Ir ao conteúdo

Posts recomendados

Postado

O programa é o seguinte:

#include <stdio.h>
main()
{
    float N1,N2,R;
    char S;
    printf("Digite dois valores numericos e um simbolo: ");
    scanf("%f%f %c", &N1,&N2,&S);
    if ((S != '+') && (S != '-') && (S != '*') && (S != '/'))
        printf("\nSimbolo invalido.");
    if (S == '+')
        R = N1+N2;
    else
    if (S == '-')
        R = N1-N2;
    else
    if (S == '*')
        R = N1*N2;
    else
    if (S == '/')
        R = N1/N2;
    printf("\nResultado da operacao: %.1f", R);
}

 

Quero saber como fazer para quando o simbolo for inválido (diferente de +, -, * e /), exibir apenas o segundo printf. Já tentei várias combinações usando os colchetes, mas nenhuma deu certo. Ele sempre exibe o segundo e último printf (quando o simbolo é inválido).

  • Membro VIP
Postado

@pferreira8

Coloque um ELSE após esse trecho:

if ((S != '+') && (S != '-') && (S != '*') && (S != '/'))
        printf("\nSimbolo invalido.")

Abra chaves e só feche no final do programa.

adicionado 1 minuto depois

 

Ou então você usa um switch..case e deixa como default a mensagem de Símbolo inválido.

Pode usar também while. Ele só fará a operação ao digitar o simbolo correto.

  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!