
Помогите найти ошибку. Это калькулятор на C++ #include using namespace std; //Оператор
множественного выбора switch. void main () { setlocale(LC_ALL, "ru"); int a , b , selection ; cout << "Введите 2 числа" << endl; cin >> a >> b; cout << "Выберите математическую аперацию" < "1. Сложение"< "2. Вычитание"< "3. Умнажение"< "4. Деление"< cin >> selection; switch (selection) { case 1: cout<<"Результат +"< default: cout<<"Ошибка! Пункт не опознан" << endl; break; } }

Ответы на вопрос

Я могу предложить написать простейший калькулятор который может умножать и делить прибовлять и отнемать вот:
c++
Привет всем!
Решил я изучать С++, но тут проблема. Написал я калькулятор, а он не работает. В результате действий пишет "0".
Вот код:
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <locale>
#include <conio.h>
float a, b, c;
char d;
int p;
int main()
{
while (p != 2)
{
printf("1 = calculator \n 2 - exit \n");
scanf("%d", &p);
switch (p)
{
case 1:
{
float c;
printf("First number ");
scanf("%d", &a);
printf("Action with numbers ");
scanf("%s", &d);
printf("Second number ");
scanf("%d", &b);
if (d == '+')
c = a + b;
if (d == '-')
c = a - b;
if (d == '*')
c = a * b;
if (d == '/')
c = a / b;
system("cls");
}
case 2:
{
break;
}
}
printf("Result = %2.f \n", c);
}
}



Проблема в том, что в строках, где выводятся пункты меню, не хватает символа ";" в конце каждой строки. Это приводит к ошибке компиляции.
Кроме того, функция main должна иметь возвращаемый тип int, а не void.
Исправленный код:
c#include <iostream>
using namespace std;
int main() {
setlocale(LC_ALL, "ru");
int a, b, selection;
cout << "Введите 2 числа" << endl;
cin >> a >> b;
cout << "Выберите математическую операцию" << endl;
cout << "1. Сложение;" << endl;
cout << "2. Вычитание;" << endl;
cout << "3. Умножение;" << endl;
cout << "4. Деление;" << endl;
cin >> selection;
switch (selection) {
case 1:
cout << "Результат сложения: " << a + b << endl;
break;
case 2:
cout << "Результат вычитания: " << a - b << endl;
break;
case 3:
cout << "Результат умножения: " << a * b << endl;
break;
case 4:
if (b != 0) {
cout << "Результат деления: " << a / b << endl;
} else {
cout << "Ошибка! Деление на ноль" << endl;
}
break;
default:
cout << "Ошибка! Пункт не опознан" << endl;
break;
}
return 0;
}
В этом исправленном коде добавлено условие проверки деления на ноль. Если второе число равно нулю, то выводится сообщение об ошибке.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili