Прежде всего, позвольте мне сказать вам, я изучаю программирование.
Сегодня я попытался найти приблизительное значение косинуса, используя ряд Тейлора. Когда я ставлю n=0, мой код дает правильный результат 1. Но когда я ставлю n=1 или что-то еще, мой код не дает правильного результата.
Я не могу понять, где проблема. Кто-нибудь может помочь?
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
float xnot = atof(argv[1]);
float n = atof(argv[2]);
float cosine = cos(xnot*(3.14159265/180));
float result;
printf("%.4f\n", cosine);
float min;
float d, c, b;
c = 1;
d = 2 * n;
for(b = 1; b <= d; b++){
c = c * b; /*value of the factorial is in c*/
}
c = c;
float power;
power = pow((-1), n);
xnot = pow(xnot, 2*n);
for(min = 0; min <= n; min++)
{
result += ((power * xnot) / c);
}
printf("%.4f", result);
}