Ir ao conteúdo

Posts recomendados

Postado

Oi gente, estou tentando fazer um programa tipo calculadora, porém quando coloco no do while a seguinte condição: 

while(operacao != 's' || operacao != 'S');

Funciona com o caractere 's' mas não com o 'S'.

Podem me ajudar? Obrigada!

 

#include<stdio.h>
#include<stdlib.h>

/* Calculadora */

int main() {

/* Variáveis */

char operacao;
float soma,sub,multi,div,num1,num2;    

do {
system("cls");
printf("------CALCULADORA------\n");
printf("[+] Adicao \n");
printf("[-] Subtracao \n");
printf("[*] Multiplicacao \n");
printf("[/] Divisao \n");
printf(" Sair \n");
printf("Digite a sua opcao: ");
scanf(" %c",&operacao);

switch(operacao) {
case '+': 
printf("\n");
printf("Digite o primeiro numero: ");
scanf("%f",&num1);
printf("Digite o segundo numero: ");
scanf("%f",&num2);
soma=num1+num2;
printf("\n");
printf("Soma=%f",soma);
break;
case '-': 
printf("\n");
printf("Digite o primeiro numero: ");
scanf("%f",&num1);
printf("Digite o segundo numero: ");
scanf("%f",&num2);
sub=num1-num2;
printf("\n");
printf("Subtracao=%f",sub);
break;
case '*': 
printf("\n");
printf("Digite o primeiro numero: ");
scanf("%f",&num1);
printf("Digite o segundo numero: ");
scanf("%f",&num2);
multi=num1*num2;
printf("\n");
printf("Multiplicacao=%f",multi);
break;
case '/': 
printf("\n");
printf("Digite o primeiro numero: ");
scanf("%f",&num1);
printf("Digite o segundo numero: ");
scanf("%f",&num2);
div=num1/num2;
printf("\n");
printf("Divisao=%f",div);
break;
case 's': 
printf("\n");
printf("Saindo");
break;
case 'S':
printf("\n"); 
printf("Saindo");
break;
default: 
printf("\n");
printf("Opcao invalida. ");
break;
}
system("pause>null");
} while(operacao != 's' || operacao != 'S');

}

Postado

@camilamaste Olá. Use o operador && e não || na condição do while:

while (operacao != 's' && operacao != 'S');

 

Postado
agora, giu_d disse:

@camilamaste Olá. Use o operador && e não || na condição do while:


while (operacao != 's' && operacao != 'S');

 

Mas nesse caso as duas condições tem que ser verdadeiras, não? No caso eu quero que ou 's' ou 'S' faça com que o programa "termine".

Postado
5 minutos atrás, camilamaste disse:

Mas nesse caso as duas condições tem que ser verdadeiras, não? No caso eu quero que ou 's' ou 'S' faça com que o programa "termine".

Sim, e é isso que você quer, ou seja que o ciclo do-while continue enquanto operação for diferente de 's' E diferente de 'S'.

  • Curtir 1

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!