Ошибка в программе c++
Привет всем активным участникам этого замечательного форума. Помогите, пожалуйста, разобраться в ошибке. Задание: Дано целое число n. Вычислить сумму s=1+1/1!+1/2!+...+1/n!
В попытках разобраться, как вычислить факториал и запихнуть это вычисление в число вышло это:
#include <iostream>
using namespace std;
int main() {
float s = 0;
int predN;
long int fra = 1; // переменная для записи n!
cout << "n: ";
cin >> predN;
for (int n = 1; n <= predN; n++) {
fra = fra * n; // вычисление n!
s = s + 1 / fra; // сложение чисел s кроме первой единицы
}
s = 1 + s; //прибавление первой единицы к числу
cout << s; //вывод ответа
return 0;
}
Но к превеликому сожалению компилятор вместо ответа выдаёт следующее, при этом консоль не появляется и говорит об ошибке сборки.
Ошибка где-то есть, возможно в вычислении факториала, однако её поиски оказались тщетны. Надеюсь на вашу помощь.
Пробовал делать Debug x64 и x86, Visual Studio всё равно выдаёт следующее:

Ответы (1 шт):
Всё начало работать при перезагрузке, но выдавало постоянный ответ 2.
После изменения типа переменных на double всё заработало и начало давать более-менее правильный ответ.
Вот исправленный код:
#include <iostream>
using namespace std;
int main() {
double s = 0;
int predN;
long double fra = 1; // переменная для записи n!
cout << "n: ";
cin >> predN;
for (int n = 1; n <= predN; n++) {
fra = fra * n; // вычисление n!
s = s + 1 / fra; // сложение чисел s кроме первой единицы
}
s = 1 + s; //прибавление первой единицы к числу
cout << s; //вывод ответа
return 0;
}
Спасибо всем, кто комментировал и отвечал. Закрываю вопрос.
