int powi(int a,int b)
{
if(b<0)
return 1 / powi (a,-b);
else if(b==0)
return 1;
else if(b==1)
return a;
else
return a*powi(a,b-1);
}
int factorial(int number)
{
int x,fac;
/* numberi scanfle istemis ona gore dusun */
fac=1;
for(x = 1; x <= number; x++)
{
if (number >= 0)
fac = fac * x;
else
fac=1;
}
return 0;
}
void getInputs(int *degree,int *n,int *exit)
{
scanf("%d %d",degree,n);
if(*degree=='e')
*exit=1;
else
*exit=0;
}
double cosine(int degree,int n)
{
#define pi 3.14
int sum,i;
if(degree<360 && degree>-1)
degree=(degree*pi)/180;
else if(degree<0)
{ do
{ degree=degree+360;
} while(degree<0);
degree=(degree*pi)/180;
}
else
{
degree=degree%360;
degree=(degree*pi)/180;
}
for(i=0;i<n+1;i++)
{
sum=0;
sum=sum+powi(-1,n)*powi(degree,2*n)/factorial(2*n);
}
return 0;
}
double sine(int degree,int n)
{
int i,sum;
#define pi 3.14
if(degree<360 && degree>-1)
degree=(degree*pi)/180;
else if(degree<0)
{ do
{ degree=degree+360;
} while(degree<0);
degree=(degree*pi)/180;
}
else {
degree=degree%360;
degree=(degree*pi)/180;
}
for(i=0;i<n+1;i++)
{
sum=0;
sum=sum+powi(-1,n)*powi(degree,2*n+1)/factorial(2*n+1);
}
return 0;
}
大家好,我有我的这个小代码试图通过Taylor和Maclorin系列计算罪和cos。但似乎我搞砸了什么。 这是没有主要功能的基本代码对于EX:当我尝试调用sin(30,4)时,它会给出一个无限循环。我真的无法找到它被困在哪里。
一点帮助就会受到影响。 谢谢你的时间。
答案 0 :(得分:0)
double sum=0;
for(i=0;i<n+1;i++)
{
sum=sum+(double)(powi(-1,n)*powi(degree,2*n+1))/factorial(2*n+1);
}
返还总和;
试试这个