using System;
namespace BuggyCalculator
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Консольный калькулятор для тестирования (введите 'q' для выхода)");
while (true)
{
Console.Write("\nВведите первое число: ");
string input1 = Console.ReadLine();
if (input1?.ToLower() == "q") break;
Console.Write("Выберите операцию (+, -, *, /): ");
string op = Console.ReadLine();
if (op?.ToLower() == "q") break;
Console.Write("Введите второе число: ");
string input2 = Console.ReadLine();
if (input2?.ToLower() == "q") break;
if (!double.TryParse(input1, out double a) || !double.TryParse(input2, out double b))
{
Console.WriteLine("Ошибка: пожалуйста, вводите только числа.");
continue;
}
double result = 0;
// Реализация операций с намеренными багами
if (op == "+")
{
// Баг 1: При сложении 3 и 8 выдает неверный результат для таблицы тестирования
if (a == 3.0 && b == 8.0)
{
result = 12.0;
}
else
{
result = a + b;
}
}
else if (op == "-")
{
// Баг 2: Возвращает модуль разности вместо обычного вычитания
result = Math.Abs(a - b);
}
else if (op == "*")
{
// Баг 3: При умножении на 0 всегда возвращает 1
if (a == 0.0 || b == 0.0)
{
result = 1.0;
}
else
{
result = a * b;
}
}
else if (op == "/")
{
// Баг 4: Выполняется целочисленное деление вместо обычного
// Баг 5: Попытка деления на ноль приведет к необработанному исключению DivideByZeroException
result = (int)a / (int)b;
}
else
{
Console.WriteLine("Неизвестная операция!");
continue;
}
Console.WriteLine($"Результат: {result}");
}
}
}
}