0
Я пытаюсь создать программу, которая может вычислить sin(x)
с учетом x
и значением n
.Получение странного результата при вычислении sin (x)
Я знаю, что грех может быть вычислена как:
x - x3/3! + x5/5! - x7/7! + x9/9!...
Но выход дает мне тот же номер каждый раз, когда: -2147483648
.
Вот мой код:
#include <iostream>
#include <cmath>
using namespace std;
int factorial(int);
int main() {
int ans = 0;
double x = 0;
int n = 0;
cout << "Enter x value: ";
cin >> x;
x = x * (3.14159/180);
cout << endl;
cout << "Enter n value: ";
cin >> n;
ans = pow(x, 1 + (2 * n))/factorial(1 + (2 * n));
cout << ans << endl;
return 0;
}
int factorial(int a) {
int facts = 0;
for (int i = 0; i <= a; i++) {
facts *= i;
}
return facts;
}
Первый взгляд на 'factorial()' говорит мне, что он всегда будет возвращать '0' из-за' int fact = 0; ', который должен быть' int fact = 1; '. Впоследствии 'main()' выполняет деление на ноль ... – VCSEL
Кроме того, цикл в 'factorial()' должен начинаться с 'for (int i = 2; ......' по той же причине. – VCSEL
Также , имеют факториальное возвращение двойным и объявляют факты двойным, что значительно расширит диапазон «а», который приведет к созданию жизнеспособных факториалов. Остается упражнение к ОП относительно того, насколько велика «а» до того, как факториал() терпит неудачу. – doug