• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

magalas

Ajuda com While.

8 mensagens neste tópico

Olá malta,

Desculpem esta duvida de maçarico, mas não consigo ver o que está mal.

Não sai do ciclo while!!!

#include <stdio.h>

main(){
    system ("chcp 1252");
    int numero1, numero2;
    char operador;
    printf("\nIntroduza o 1º número inteiro :");
    scanf("%d", &numero1);
    printf("\nIntroduza o 2º número inteiro :");
    scanf("%d", &numero2);

    while(operador!='+' || operador!='*') { 
          printf("\nIntroduza a operação a realizar ( + / * ) :");
          scanf(" %c", &operador);
    } 
     
    if (operador == '+')
        printf("\nA soma de %d e %d é %d\n\n", numero1, numero2, numero1+numero2);
     else
        printf("\nA multiplicação de %d por %d é %d\n\n", numero1, numero2, numero1*numero2);
      
    system ("pause");
    return;
}

   

Obrigado pela ajuda...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A condição (operador!='+' || operador!='*') é sempre verdadeira.

Se o operador só tem um estado, pelo menos uma das condições é verdadeira.

true OR X = true

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Exacto Shumy,

Muito obrigado, já tinha visto tudo menos mudar para && (lol).

Já funciona...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Também não me parece que seja isso que queres, mas sim:

(operador='+' || operador='*')

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não, o que eu queira é que só quando o operador fosse igual a + ou *, é que saia do ciclo while e faça a respectiva operação.

Com o && em vez do || ele funciona bem.

A tua dica resultou.

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É pois, também me enganei, ou seja:

(operador!='+' && operador!='*') <=> ! (operador='+' || operador='*')

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, fica a mesma coisa(lol)

Eu continuei a linha linha de raciocinio do !=, logo tinha que usar o &&.

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora