#include <iostream> using namespace std; int main(){ int x,y,sum; char znak; begin: cout << "Vvedite deystvie(+,-,*,/): "; cin >> znak; cout << endl; cout << "Vvedite pervoe chislo: "; cin >> x; cout << endl; cout << "Vvedite vtoroe chislo: "; cin >> y; cout << endl; if (znak=='+'){ sum=x+y; cout << "Otvet: " << sum << endl; goto begin; } else if (znak=='-'){ sum=x-y; cout << "Otvet: " << sum << endl; goto begin; } else if (znak=='*'){ sum=x*y; cout << "Otvet: " << sum << endl; goto begin; } else if (znak=='/'){ sum=x/y; cout << "Otvet: " << sum << endl; goto begin; } } Code #include <iostream> using namespace std; int main(){ int x,y,sum; char znak; begin: cout << "Vvedite deystvie(+,-,*,/): "; cin >> znak; cout << endl; cout << "Vvedite pervoe chislo: "; cin >> x; cout << endl; cout << "Vvedite vtoroe chislo: "; cin >> y; cout << endl; if (znak=='+'){ sum=x+y; cout << "Otvet: " << sum << endl; goto begin; } else if (znak=='-'){ sum=x-y; cout << "Otvet: " << sum << endl; goto begin; } else if (znak=='*'){ sum=x*y; cout << "Otvet: " << sum << endl; goto begin; } else if (znak=='/'){ sum=x/y; cout << "Otvet: " << sum << endl; goto begin; } }
davidcooney, #include <iostream> using namespace std; int main(){ int a,b,s; char znak; cout<<"Введите первое число:"; cin>>a; cout<<"Введите знак:"; cin>>znak; cout<<"Введите второе число число:";cin>>b; bool f = true; switch(znak) { case '+': s = a+b; break; case '-': s = a-b; break; case '*': s = a*b; break; case '/': s = a/b; break; } if (f) cout<<s; }
aufvolk1, еще можно, добавить сообщение о ошибке неизвестного операнда, типа: #include <iostream> using namespace std; int main(){ int a,b,s; char znak; cout<<"Введите первое число:"; cin>>a; cout<<"Введите знак:"; cin>>znak; cout<<"Введите второе число число:";cin>>b; bool f = true; switch(znak) { case '+': s = a+b; break; case '-': s = a-b; break; case '*': s = a*b; break; case '/': s = a/b; break; default : cout<<"Неизвестный операнд"; f = 0; } if (f) cout<<s; }
@aufvolk1,мне нужен был калькулятор на более чем 2 числа, а не на 2. Смысл от такого калькулятора, он не интересный
#include <iostream> #include <windows.h> using namespace std; int main() { system("cls"); SetConsoleCP(1251); SetConsoleOutputCP(1251); float a, b; char c; cout << "Введите 2 числа:" << endl; cin >> a >> b; cout << "Что сделать с числами? + - * /" << endl; cin >> c; switch (c) { case '+': a + b; cout << a + b; break; case '-': a - b; cout << a - b; break; case '*': a * b; cout << a * b; break; case '/': a / b; cout << a / b; default: cout << "Ошибка!" << endl; } system("pause"); return 0; }
theophrastus, да блин ему нужно не на 2 числа, а на сколько угодно, такой калькулятор не решит пример 5+(2*4)
#include <iostream> using namespace std; int main() { int num = 0; char operatr; bool addMore = false; double numbers[99]; do { cout << "Enter number " << num + 1 << ": \t"; cin >> numbers[num]; cout << "Do you want to add one more number? 1 - Yes 0 - No: \t"; cin >> addMore; num++; } while (addMore); cout << "Enter the operation with them: - + * /" << endl; cin >> operatr; double result = numbers[0]; switch (operatr) { case ('-'): for (int i = 1; i < num; i++) result -= numbers[i]; cout << "Result: " << result; break; case ('+'): for (int i = 1; i < num; i++) result += numbers[i]; cout << "Result: " << result; break; case ('*'): for (int i = 1; i < num; i++) result *= numbers[i]; cout << "Result: " << result; break; case ('/'): for (int i = 1; i < num; i++) result /= numbers[i]; cout << "Result: " << result; break; default: cout << "Error!"; break; } return 1; } Code #include <iostream> using namespace std; int main() { int num = 0; char operatr; bool addMore = false; double numbers[99]; do { cout << "Enter number " << num + 1 << ": \t"; cin >> numbers[num]; cout << "Do you want to add one more number? 1 - Yes 0 - No: \t"; cin >> addMore; num++; } while (addMore); cout << "Enter the operation with them: - + * /" << endl; cin >> operatr; double result = numbers[0]; switch (operatr) { case ('-'): for (int i = 1; i < num; i++) result -= numbers[i]; cout << "Result: " << result; break; case ('+'): for (int i = 1; i < num; i++) result += numbers[i]; cout << "Result: " << result; break; case ('*'): for (int i = 1; i < num; i++) result *= numbers[i]; cout << "Result: " << result; break; case ('/'): for (int i = 1; i < num; i++) result /= numbers[i]; cout << "Result: " << result; break; default: cout << "Error!"; break; } return 1; } Количество чисел зависит лишь от длины массива numbers
#include "stdafx.h" #include <iostream> #include <iomanip> double number(); double factor(); double expr(); double brackets(); int main() { double n; setlocale(LC_ALL, "Rus"); std::cout << "Введите выражение: "; n = expr(); std::cout << "Результат вычисления: " << std::setprecision(8) << n << std::endl; std::cin.get(); return 0; } double number() { double result = 0.0; double k = 10.0; int sign = 1; char c; c = std::cin.get(); while (c == ' ') c = std::cin.get(); if (c == '-') sign = -1; else std::cin.putback(c); while (true) { c = std::cin.get(); while (c == ' ') c = std::cin.get(); if (c >= '0' && c <= '9') result = result * 10.0 + (c - '0'); else { std::cin.putback(c); break; } } c = std::cin.get(); if (c == '.') { while (true) { c = std::cin.get(); if (c >= '0' && c <= '9') { result += (c - '0') / k; k *= 10.0; } else { std::cin.putback(c); break; } } } else std::cin.putback(c); return sign * result; } double factor() { double result = brackets(); double temp; char c; while (true) { c = std::cin.get(); while (c == ' ') c = std::cin.get(); switch (c) { case '*': result *= brackets(); break; case '/': temp = brackets(); if (temp == 0.0) { std::cout << "Деление на нуль!" << std::endl; exit(-1); } result /= temp; break; default: std::cin.putback(c); return result; } } } double expr() { double result = factor(); char c; while (true) { c = std::cin.get(); while (c == ' ') c = std::cin.get(); switch (c) { case '+': result += factor(); break; case '-': result -= factor(); break; default: std::cin.putback(c); return result; } } } double brackets() { double result; int sign = 1; char c; c = std::cin.get(); while (c == ' ') c = std::cin.get(); if (c == '-') { sign = -1; c = std::cin.get(); } while (c == ' ') c = std::cin.get(); if (c == '(') { result = sign * expr(); c = std::cin.get(); if (c != ')') { std::cout << "Неверная расстановка скобок!" << std::endl; exit(-1); } return result; } else { std::cin.putback(c); return sign * number(); } } C #include "stdafx.h" #include <iostream> #include <iomanip> double number(); double factor(); double expr(); double brackets(); int main() { double n; setlocale(LC_ALL, "Rus"); std::cout << "Введите выражение: "; n = expr(); std::cout << "Результат вычисления: " << std::setprecision(8) << n << std::endl; std::cin.get(); return 0; } double number() { double result = 0.0; double k = 10.0; int sign = 1; char c; c = std::cin.get(); while (c == ' ') c = std::cin.get(); if (c == '-') sign = -1; else std::cin.putback(c); while (true) { c = std::cin.get(); while (c == ' ') c = std::cin.get(); if (c >= '0' && c <= '9') result = result * 10.0 + (c - '0'); else { std::cin.putback(c); break; } } c = std::cin.get(); if (c == '.') { while (true) { c = std::cin.get(); if (c >= '0' && c <= '9') { result += (c - '0') / k; k *= 10.0; } else { std::cin.putback(c); break; } } } else std::cin.putback(c); return sign * result; } double factor() { double result = brackets(); double temp; char c; while (true) { c = std::cin.get(); while (c == ' ') c = std::cin.get(); switch (c) { case '*': result *= brackets(); break; case '/': temp = brackets(); if (temp == 0.0) { std::cout << "Деление на нуль!" << std::endl; exit(-1); } result /= temp; break; default: std::cin.putback(c); return result; } } } double expr() { double result = factor(); char c; while (true) { c = std::cin.get(); while (c == ' ') c = std::cin.get(); switch (c) { case '+': result += factor(); break; case '-': result -= factor(); break; default: std::cin.putback(c); return result; } } } double brackets() { double result; int sign = 1; char c; c = std::cin.get(); while (c == ' ') c = std::cin.get(); if (c == '-') { sign = -1; c = std::cin.get(); } while (c == ' ') c = std::cin.get(); if (c == '(') { result = sign * expr(); c = std::cin.get(); if (c != ')') { std::cout << "Неверная расстановка скобок!" << std::endl; exit(-1); } return result; } else { std::cin.putback(c); return sign * number(); } }