Hola, esta es la primera vez que escribo, estoy aprendiendo a programar en C y uno de los ejercicios me pedía hallar el seno usando sumas de Taylor, empecé escribiendo un pseudocódigo e Psint, funcionó sin problemas pero al momento de escribir el código en C y al ejecutarlo e ingresar el ángulo da como resultado #INF00 cuando es mayor a 1.5 rad.
He revisado varias veces mi código y no llego a encontrar el error por mi mismo, agradecería mucho que me ayudaran a identificar mi error.
He revisado varias veces mi código y no llego a encontrar el error por mi mismo, agradecería mucho que me ayudaran a identificar mi error.
Código (c) [Seleccionar]
#include<stdio.h>
#include<math.h>
int main(){
int n_termino,factorial;
double angulo,sumatoria,termino;
printf("Ingrese el angulo:\n"); //Ángulo en radianes
scanf("%lf",&angulo);
termino=angulo; //El primer término es igual al ángulo
sumatoria=0; //Sumatoria total
n_termino=1; //Número de orden del término
factorial=1;
while(fabs(termino)>=0.0000001){ //Se detiene cuando el valor de los terminos es muy pequeño
if(n_termino==1){ //Para el primer termino
sumatoria=sumatoria+termino;
n_termino=n_termino+1;
printf("Termino %d Valor %lf\n",n_termino-1,termino);
}
else{
if((n_termino&2)==0){ //Demas terminos y variacion de signos
factorial=factorial*(2*n_termino-1)*(2*n_termino-2);
termino=(-1)*((double)pow(angulo,2*n_termino-1)/factorial);
n_termino=n_termino+1;
sumatoria=sumatoria+termino;
printf("Termino %d Valor %lf\n",n_termino-1,termino);
}
else{
factorial=factorial*(2*n_termino-1)*(2*n_termino-2);
termino=((double)pow(angulo,2*n_termino-1)/factorial);
n_termino=n_termino+1;
sumatoria=sumatoria+termino;
printf("Termino %d Valor %lf\n",n_termino-1,termino);
}
}
}
printf("El seno es %lf\n",sumatoria);
return 0;
}