adblock check

Как исправить вылет

это херня присутствует сначала разработки да да мини канкулятор вот вылет

хотел исправить я гуглил как исправить вылет но нечего выдала может разберемся вместе как это исправить.

Код для 0.2

#include <iostream>

int main()

{

float num1, num2,res{};

std::cout << «enter num1: »;

std::cin >> num1;

std::cout << «enter num2: »;

std::cin >> num2;

char math;

std::cout << «enter math symbol: »;

std::cin >> math;

if (math == '+')

res = num1 + num2;

else if (math == '-')

res = num1 — num2;

else if (math == '*')

res = num1 * num2;

else if (math == '/')

res = num1 / num2;

std::cout << «result: » << res;

float *val = new float;

char* symbols = new char[35];

delete[6] symbols;

int* nums = new int[15];

nums[0] = 45;

delete[2] nums;

int res = 1;

return 0;

}

11 комментариев по лайкам по дате
Оставьте комментарий...
Оставьте комментарий...
Xiaomi ❤︎
Во-первых удали {} у определения переменной res в начале. Во-вторых, действительно добавь проверку на деление на ноль. В-третьих, конструкция после вывода результата какая-то непонятная. Что за массив delete? Ты его нигде не определял. Не совсем понимаю, что ты хочешь с ним делать. Закоментируй пока этот код. Не понятно, как программа вообще с ним собирается. В-четвертых, ты не можешь определить переменную int res, когда у тебя уже есть переменная float res. И вообще, используй лучше тип double, нет смысла память экономить.
Ryzen 5 3500U / Radeon Vega 8
Автор
он double выдает ошибку
Xiaomi ❤︎
Какую?
Xiaomi ❤︎
Насчет delete понял. Операнд освобождения памяти. Но в нем не надо указывать объем массива.
Xiaomi ❤︎
В целом, учись пользоваться отладкой. Хотя бы будет понятно, в какой момент происходит ошибка
Поменяй код на такой (скорее всего сработает):
#include <iostream>

int main()
{
float num1, num2, res{};
std::cout << «enter num1: »;
std::cin >> num1;
std::cout << «enter num2: »;
std::cin >> num2;

char math;
std::cout << «enter math symbol: »;
std::cin >> math;

if (math == '+')
res = num1 + num2;
else if (math == '-')
res = num1 — num2;
else if (math == '*')
res = num1 * num2;
else if (math == '/')
{
if (num2 != 0)
res = num1 / num2;
else
{
std::cout << «Error: division by zero!\n»;
return 1;
}
}
else
{
std::cout << «Error: unknown operator!\n»;
return 1;
}

std::cout << «result: » << res << "\n";

float* val = new float;
*val = 3.14f;
delete val;

char* symbols = new char[35];
delete[] symbols;

int* nums = new int[15];
nums[0] = 45;
delete[] nums;

return 0;
}
Ничего не понятно, но интересно.



Работает
хорошо
кривовато
Это уже не комне