Ir ao conteúdo
  • Cadastre-se

Como comparar vários caracteres?


Rafael M. Teixeira

Posts recomendados

Boa tarde!

Sou o Rafael conhecido como (Takamasu). Estudante de Análise e Desenvolvimento de Sistemas (2º período) na Estácio de Sá.

Bem, estou tentando criar uma tabuada que mostra apenas os cálculos da tabuada do número e da operação solicitados.
Minha dúvida é a seguinte:
Quero saber como comparar cada caractere, que no caso, são as operações que existem nessa tabuada ( soma (+), subtração (-), multiplicação (*) e divisão (/) ).

 

Só estou conseguindo comparar 1 sinal. 
Quero que o código pergunte por exemplo:
Se o diferente de +, -, * ou /, mostre uma mensagem de erro solicitando que digite novamente a operação e assim que a operação for uma dessas quatro ele continue com a execução do programa.
Segue aqui meu código:

 
#include <iostream>
#include <locale.h>
using namespace std;
int main(){
 
setlocale(LC_ALL, "Portuguese");
cout << "--- TABUADA ---\n\n";
 
int operador = 0;
char operacao;
 
cout << "Operador: ";
cin >> operador;
 
cout << "Escolha a operação ( + - * / ): ";
cin >> operacao;
 
while ( operacao != '+' /* comparar com estes valores +, - , *  e /. */ ){
cout << "Operacao invalida. Selecione novamente: ";
cin >> operacao;
}
 
/* --- OPERADOR ABAIXO --- */ 
 
if (operacao == '+'){
for (int a = 0 ; a < 10 ; a++){
cout << operador << " + " << a << " = " << operador + a << "\n";
}
}
if (operacao == '-'){
for (int a = 0 ; a < 10 ; a++){
cout << operador << " - " << a << " = " << operador - a << "\n";
}
}
if (operacao == '*'){
for (int a = 0 ; a < 10 ; a++){
cout << operador << " * " << a << " = " << operador * a << "\n";
}
}
if (operacao == '/'){
for (int a = 0 ; a < 10 ; a++){
cout << operador << " / " << a << " = " << operador / a << "\n";
}
}
 
 
cout << "\n";
system("pause");
return 0;
}
Link para o comentário
Compartilhar em outros sites

#include <iostream>

#include <locale.h>
using namespace std;
int main(){
 
setlocale(LC_ALL, "Portuguese");
cout << "--- TABUADA ---\n\n";
 
int operador = 0;
char operacao;
 
cout << "Operador: ";
cin >> operador;
 
cout << "Escolha a operação ( + - * / ): ";
cin >> operacao;
 
while ( operacao != '+' /* comparar com estes valores +, - , *  e /. */ ){
cout << "Operacao invalida. Selecione novamente: ";
cin >> operacao;
}

pelo que eu entendi você quer comparar se ela é diferente dos 4 operadores matemáticos e se for continuar até que o correto seja inserido 

 

Para comparar com os 4 faça o uso da || simboliza o "OU" lógico.

http://pt.wikipedia.org/wiki/Operadores_em_C_e_C%2B%2B

 

Código :

 

while (operacao != '+' || operacao != '*' || operacao != '-' || operacao != '/'){

cout << "Operação invalida. Selecione Novamente : ";
cin >> operacao;
}
 
da até pra usar um do/while
 
do{
cout<<"Digite a operação que deseja realizar : "
cin>>operacao;
 
if(operacao != '+' || operacao != '*' || operacao != '-' || operacao != '/')
{
    cout<<"Operador Invalido. Digite novamente \n"
   operadorErrado = true;
}
}while (operadorErrado == true)
 
ou mesmo colocar o que está dentro do if no while .. fica a sua escolha
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Olá! :)

Eis a minha dica abaixo:

Escreva Função/procedimento que retorne um operador e simultaneamente  ;)

valide a entrada.

//program C - Simple Code <Clube do Hardware>#include<stdio.h>#include<locale.h>#define OPERADOR char//Function Prototype DeclarationOPERADOR getc_operator( void );//Prime Function Languageint main( void ){   setlocale( LC_CTYPE, "Portuguese" );   OPERADOR c_operator;   //...   printf( "TESTE: $ " );   c_operator = getc_operator( );      printf( "Você escolheu: %c\n\n", c_operator );return 0x0;}//Function Prototype DefinitionOPERADOR getc_operator( void ){   OPERADOR oper = 0;   while( 1 )   {      scanf( "%c", &oper );      switch( oper )      {         case '-':         case '+':         case '*':         case '/':            return oper;         default:            printf( "|%c|Não é um operador válido!\n$ ",oper );            while( getchar( ) != '\n' )               continue;      }   }return 0;}

Link para o comentário
Compartilhar em outros sites

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