Нужна помощь от C++ с калькулятором
Мой цикл DO/WHILE не работает. Помогите мне тоже найти ошибку, пожалуйста!!
#include<iostream> #include<conio.h> #include<process.h> using namespace std; int main() { char exit; float a,b,result; int s1,s2,s3,s4,s5; do { cout<<"========== WELCOME TO MY CALCULATOR ==========\n1.Arithmetic operations\n2.Trigonometric Functions\n3.Logarithmic Functions\n4.Power Functions\n5.Exit\n"; cin>>s1; switch (s1) { case 1: cout<<"1.Addition"<<endl; cout<<"2.Substraction"<<endl; cout<<"3.Multiplication"<<endl; cout<<"4.Division"<<endl; cout<<"Choose operator by number:"; cin>>s2; switch (s2) { case 1: cout<<"Enter first value: "; cin>>a; cout<<"Enter second value: "; cin>>b; result=a+b; cout<<"Your result is: "<<result<<endl; break; case 2: cout<<"Enter first value: "; cin>>a; cout<<"Enter second value: "; cin>>b; result=a-b; cout<<"Your result is: "<<result; break; case 3: cout<<"Enter first value: "; cin>>a; cout<<"Enter second value: "; cin>>b; result=a*b; cout<<"Your result is: "<<result; break; case 4:cout<<"Enter first value: "; cin>>a; cout<<"Enter second value: "; cin>>b; result=a/b; cout<<"Your result is: "<<result; break; } break; case 2: cout<<"1.Sin function"<<endl; cout<<"2.Cos function"<<endl; cout<<"3.Tan function"<<endl; cout<<"Choose operator by number:"<<endl; cin>>s3; switch (s3) { case 1: cout<<"Enter a number: "; cin>>a; result=(sin(a)); cout<<"Your result is: "<<result<<endl; break; case 2: cout<<"Enter a number: "; cin>>a; result=(cos(a)); cout<<"Your result is: "<<result<<endl; break; case 3: cout<<"Enter a number: "; cin>>a; result=(tan(a)); cout<<"Your result is: "<<result<<endl; break; } break; case 3: cout<<"1.Natural log"<<endl; cout<<"2.Log with base 10 "<<endl; cout<<"Choose operator by number:"<<endl; cin>>s4; switch (s4) { case 1: cout<<"Enter a number: "; cin>>a; result=(log(a)); cout<<"Your result is: "<<result<<endl; break; case 2: cout<<"Enter a number: "; cin>>a; result=(log10(a)); cout<<"Your result is: "<<result<<endl; break; } break; case 4: cout<<"1.Power"<<endl; cout<<"2.Square root"<<endl; cout<<"Choose operator by number:"<<endl; cin>>s5; switch (s5) { case 1: cout<<"Enter first value: "; cin>>a; cout<<"Enter second value: "; cin>>b; result=pow(a,b); cout<<"Your result is: "<<result<<endl; break; case 2: cout<<"Enter a number: "; cin>>a; result=sqrt(a); cout<<"Your result is: "<<result<<endl; break; } break; case 5:{ cout<< "Are you sure you want to leave this program? Press Y to stay or else press any key to leave " << endl; break; } break; } cout<< "Press Y to continue or else press any key to leave program:"; cin>>a; }while (exit == 'y'); }
Что я уже пробовал:
Я не мог найти решение для этого. Ошибка дает переменную "exit", которая используется без инициализации.
Richard MacCutchan
Избавьтесь от всего этого дублированного кода. Сначала запросите номера и операторов и убедитесь, что они действительны. Только после этого вам нужно использовать блок переключателя для выполнения вычислений. И только в конце блока переключателей вам нужно распечатать результат.