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()'을 처음 보게되면'int facts = 0; 때문에'0'을 반환 할 것이고'int facts = 1;'이어야합니다. 그 다음에'main()'은 0으로 나누어집니다. – VCSEL
또한 factorial()의 루프는 같은 이유로 for (int i = 2; ......)로 시작해야합니다. – VCSEL
또한 팩토리얼 리턴을 두 배로하고 팩트를 double로 선언하면 실행 가능한 팩토리얼을 생성하는 "a"의 범위가 크게 확장됩니다. 팩토리얼()이 실패하기 전에 얼마나 큰 "a"가 있는지에 대한 OP 로의 연습으로 넘어갑니다. – doug