#include <stdio.h>
#include <Windows.h>
#include <string>
#include <iostream>
using namespace std;
int main(){
double ns[3] = {0, 0, 0};
string strs[2] = {"+", "s"};
while(strs[1] == "s" || strs[1] == "S"){
printf("O Ultimo Resultado Foi = %g", ns[2]); //Se No Seu Visual Studio Aparecer Que ("printf" is ambiguous), É Normal, Está Dizendo Isso Porque Eu Deveria Tar Usando "cout" Mas Roda De Boa :D
printf("\n\nOperacoes Disponiveis (+, -, *, /)");
printf("\n\nExemplos: (4 + 3) (4- 3) (4 * 3.3) (4/ 2.3)");
printf("\n\nSeparada Por Espacos Digite A Operacao: ");
cin >> ns[0] >> strs[0] >> ns[1]; //Entrada Para As Variaveis ns[0] strs[0] ns[1]
if (strs[0] == "+"){
ns[2] = ns[0] + ns[1];
}
else if (strs[0] == "-"){
ns[2] = ns[0] - ns[1];
}
else if (strs[0] == "*"){
ns[2] = ns[0] * ns[1];
}
else if (strs[0] == "/"){
ns[2] = ns[0] / ns[1];
}
else if (strs[0] != "+" || strs[0] != "-" || strs[0] != "*" || strs[0] != "/"){ //Detecta Se O Conteúdo Da strs[0], É Valido Para Operações
cout << "\nOperador Nao Definido (" << strs[0] << ")\n\n"; //Se For Inválido, Mostro Que N Foi Definido Um Operador Válido, Mais A Baixo Vc Vai Inteder Pq N Usei O cout Invez Do printf
system("pause"); //Dou Um Pause, Aguardando O Pressionamento De Uma Tecla
return 0; //E Fecho O Programa
}
printf("\n%g", ns[0]); //Se Você Percebeu Eu Fiz Dois Printf E Um cout
cout << " " << strs[0] << " "; //Pq Não Da Pra Colocar String No Printf Usando Uma Variavel Do Tipo string
printf("%g = %g\n", ns[1], ns[2]); //Pq String Não É Um Tipo De Variável Normal No C++ Você Tem Que Importar Uma Bibliotca Para Usar Elas
//A Não Ser Que Você Esteja Fazendo Um Programa Com Interface Gráfica Ai Lá A String É Declarada Assim System::String^ hue = "BR"; Ou Se Você Estiver Usando O namespace System, Você Só Coloca String^ hue = "BR";
//E O Tipo char Dava Problema Quando O Usuário Não Digitava Um Operador Normal Exemplo (//22)
//Ele Guardou Na Variavel O Valor "/" Pq É O Primeiro Elemento De (//22) Ai A Variavel Passa Pelo If Como FALSE E Faz Os Calculos Mas No Final O Programa Da Erro
//Agora Por Exemplo Se O Usuário Digitasse O Operador Como (a) No Exemplo (3 a 2) Ai Passa No If Como TRUE Afinal "a" É Diferente De / + - ou * Então Mostra O Operador E Fecha O Programa
//Se Eu Colocasse printf(" %s ",strs[0]) Daria Um Erro, O printf É Da Linguagem C E No C Não Existe String Lá Uma "string" É Um Array De char, Exemplo: char hue[2] = "BR";
//Ai Eu Imendei Um printf Com O cout, cout É A Função De Saída Verdadeira Do C++ (c out)
//Mesmo printf Sendo Do C, Eu Prefiro O Printf Pq
//As Coisas Ficam Bem Mais Organizadas, Legiveis E Intendiveis
//O Correto Para Mostrar O Resultado Seria cout << "\n" << ns[0] << " " << strs[0] << " " << ns[1] << " = " << ns[2]
//Agora Olha A Diferença Com O printf("\n%g %c %g = %g", ns[0], strs[0], ns[1], ns[2]);
//Da Pra Entender Bem Melhor, Como As Coisas Vão Sair Na Tela =D
//Mas Eu Poderia Usar Assim printf("%g %s %g = %g\n", ns[0], strs[0].c_str(), ns[1], ns[2]);
//c_str() É Uma Função Para Converter string em char
printf("\nDeseja Continuar (s-n) ? ");
cin >> strs[1];
system("cls");
}
printf("Aplicacao Encerrada :(\n\n"); //Saiu Do While
Sleep(1500);
}