Salve sono nuovo, mi sono iscritto per chiedervi un consiglio su un apparente bug che fa crashare il programma arrivato al punto di mostrare il risultato, ecco il codice:
#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include <stdio.h>
#include <math.h>
using std::cin;
using std::cout;
using std::endl;
int main()
{
char operazione; float num1=0,num2=0,tot=0; double e;
cout << "Benvenuto in -CALCOLATRICE-" << endl;
cout << "Quale operazione vuoi compiere?" << endl;
cout << "Altrimenti premi X per uscire: ";
while(1)
{
cin >> operazione; num1=0; num2=0; tot=0;
if(operazione == 'a'){
cout << "Quale e' il primo numero? "; cin >> num1;
cout << "Quale e' il secondo numero? "; cin >> num2;
tot = num1 + num2; printf("La somma e': %f",tot); break;
}
if(operazione == 's'){
cout << "Quale e' il primo numero? "; cin >> num1;
cout << "Quale e' il secondo numero? "; cin >> num2;
tot = num1 - num2; printf("La differenza e': %f",tot); break;
}
if(operazione == 'm'){
cout << "Quale e' il primo numero? "; cin >> num1;
cout << "Quale e' il secondo numero? "; cin >> num2;
tot = num1 * num2; printf("Il prodotto e': %f",tot); break;
}
if(operazione == 'd'){
cout << "Quale e' il primo numero? "; cin >> num1;
cout << "Quale e' il secondo numero? "; cin >> num2;
tot = num1 / num2; printf("Il quoziente e': %f",tot); break;
}
if(operazione == 'e'){
cout << "Quale e' il numero da elevare alla seconda? "; cin >> num1;
tot = num1 * num1; printf("Il risultato e': %f",tot); break;
}
if(operazione == 'r'){
cout << "Quale e' il radicando? "; cin >> num1;
e = sqrt(num1); printf("La radice quadrata e': %f",e); break;
}
if(operazione == 'X'){
break;
}
}
if(operazione != '\n'){
MessageBox(NULL,"Comando non trovato","Errore",MB_ICONERROR);
}
}
}
È la quarta volta che scrivo il codice, ho provato a togliere i Void che usavo per risparmiare tempo, ad usare printf al posto di cout per mostrare i risultati e a togliere i MessageBox con un semplice messaggio DOS di errore, ma nulla. Se lo avvio in Dev C++, ma anche in Code Blocks funziona perfettamente, ma esternamente no. Considerando che sono ancora agli inizi, che mi consigliate?