0
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;
}
Привет всем, у меня есть этот маленький мой код, который пытается рассчитать грех и cos через серии Тейлора и Maclorin. Но похоже, что я что-то испортил. Это базовый код без основной функции. Для EX: когда я пытаюсь вызвать sin (30,4), он дает бесконечный цикл. Я действительно не могу найти, где он застрял в нем.Inaporative использование бесконечной петли в C
Небольшая помощь была appriciated. Спасибо за ваше время.
Это не называется «немного кода». На самом деле это слишком много. – haccks
Используйте 'double' вместо' int '. – alain
просто переглядывается, что больше напоминает бесконечную рекурсию, чем бесконечный цикл. Внимательно проверьте powi на предмет проблем, так как все остальные петли выглядят так, как будто они должны прекратиться. –