今私はsinxをテイラー展開するプログラムを作ろうとしています。
(展開は6次まで、0°から10°ずつ値を求める)
visual studio 2012 を使っています。
コンパイルエラーも起きず、どこが間違っているのか分かりません。
実行してみたところ、 sin0°からsin350°まで全て0となってしまいます。
どなたか修正案を教えてください。
#include "stdafx.h"
#include<math.h>
double factorial(int a);
int main()
{
int n,x;
double s,i,r;
printf("nの値は?\n");
scanf_s("&d",&n);
for(x=0;x<=350;x+=10)
{
r=3.14*x/180;
s=0.0;
for(i=1;i<=n;i++)
{
s+=(double)pow(-1,i-1)*pow(r,2*i-1)/factorial(2*i-1);
}
printf("sin%d° =%f \n",x,s);
}
return(0);
}
double factorial(int a)
{
int i,n;
n=1;
for(i=1;i<=a;i++)
{
n*=i;
}
return(n);
}