Sou iniciante de C++ e estou com duvida no seguinte codigo... Meu problema é nessa parde do "se X for diferente a ALGUM SINAL ". Pois sem essa parte, o codigo funciona totalmente do jeito que eu quero...
Minha finalidade com essa parte " ........if ( x != '-' || '+'........... " é que caso usuario digite outro caracter que nao seja os exirgidos, apareça a mensagem destinada e volte novamente para parte "SINAL" que pede a equação.... Imagino que voces como uruarios avançados possam ter outras ideias, ou comandos mais funcionais que os usados aqui, mas gostaria muito que SE POSSIVEL, apenas corrijam o codigo... queria finalizar meu programa com apenas os comandos que adquiri ate agora... porem se nao tiver correção, e para funcionar tenha que colocar algum outro comando, ficarei muito satisfeito em aprender mais.
segue minha tentativa ↓↓
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
//projeto de calculadora
inicio:
double a = 0;
char x = 0;
double b = 0;
cout << "primeiro "; cin >> a;
sinal:
cout << "equacao "; cin >> x;
if (x != '+' || '-' || '*' || '/') //se x for diferente de algum dos sinais, executar o texto abaixo
{
cout << "digite uma operacao matematica. Exemplos: + - * /" << endl;
goto sinal; //apos executar, volta a pedir o "sinal"
}
else//se nao for diferente, continua a equacao
{
cout << "segundo "; cin >> b;
/*se o sinal for correspondente a alguma das alternativas abaixo,
tem-se a resposta emprimida na tela, de acordo com sinal desejado. */
if (x == '+')
{
cout << "= " << a + b << endl;
}
if (x == '-')
{
cout << "= " << a - b << endl;
}
if (x == '*')
{
cout << "= " << a * b << endl;
}
if (x == '/')
{
cout << "= " << a / b << endl;
}
}
goto inicio; // volta ao começo "inicio"
}
o problema mesmo é só imprimir na tela que o sinal esta errado, pois quando digito o sinal corretamente, ainda assim imprime na tela a frase que esta incorreto, e a operação volta para o "SINAL" . E mesmo quando mudo o comando para o final do codigo, o codigo é executado todo corretamente, tem-se a resposta imprimida, e logo apos, a mensagem destinada a quando o sinal for digitado incorreto, tambem é impressa...