На фотографиях задание.
вот код:
Код:
#include <math.h>
#include <stdio.h>
#include <conio.h>
long double fact(int N)
{
if(N < 0) // åñëè ïîëüçîâàòåëü ââåë îòðèöàòåëüíîå ÷èñëî
return 0; // âîçâðàùàåì íîëü
if (N == 0) // åñëè ïîëüçîâàòåëü ââåë íîëü,
return 1; // âîçâðàùàåì ôàêòîðèàë îò íóëÿ - íå óäèâëÿåòåñü, íî ýòî 1 =)
else // Âî âñåõ îñòàëüíûõ ñëó÷àÿõ
return N * fact(N - 1); // äåëàåì ðåêóðñèþ.
}
int main()
{
double n, b, xn, xk, sh, t, x, sum, w, f;
int i;
//char string[105];
char Y,N;
a1: while(1)
{
printf("Vvedite x nachal'noe, x konechnoe, sdvig, shag, tochnost'\n");
scanf("%lf%lf%lf%lf%lf", &xn,&xk,&b,&sh,&t);
{
printf("+---------------------------------------+\n");
printf("¦ X ¦cos(x+b) ¦ Function¦ N ¦\n");
printf("¦---------+---------+---------+---------¦\n");
for(x=xn;x<xk+sh/8;x+=sh)
{
sum=0.0;
n=0.0;
while(fabs(pow(x, n)*cos(b+3.14*n/2))/fact(n)>t)
{
n++;
}
for(i = 0.0; i<n; i++)
sum+=pow(x, i)*cos(b+M_PI*i/2)/fact(i);
printf("¦ %6.2f ¦ %6.3f ¦ %6.3f ¦ %6g ¦\n", x, cos(x+b), sum, n);
}
printf("+---------------------------------------+\n");
a2: printf("Prodolzhit' vichysleniya? (Y/N)\n");
}
if(getche()=='Y') goto a1;
if(getche()=='N') return 0;
else goto a2;
}
return 0;
}
Не пойму почему после 35-ого элемента счет через ряд сбивается, и начинают вываливаться большие числа.