происходит переполнение, как это устранить?
#include <iostream>
using namespace std;
int main() {
int a1, a100;
float d, s;
setlocale(LC_ALL, "RUS");
cout << "Введите числа: ";
cin >> a1 >> a100;
d = (a100 - a1) / 99.0;
s = (2 * a1 + 15 * d) * 8.0;
cout << "Разность прогрессии: "<< d << endl;
cout << "Сумма первых 16 членов прогрессии: " << s;
return 0;
}
C26451 Арифметическое переполнение: использование оператора "-" на байтовом значении 4 и приведение результата к байтовому значению 8. Приведите значение к более широкому типу перед вызовом оператора "-", чтобы избежать переполнения (io.2).
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Чисто теоретически значение
(a100 - a1) / 99.0;
имеет тип double, который может не поместиться в вашей переменной d типа float.
Чем вам так дорог именно float? Замените его на используемый по умолчанию double и не мучайтесь...