Nie rozumiem dlaczego występuje tu różnica pomiędzy działaniem obu programów. Czy ktoś mógłby mi to wytłumaczyć? Pierwszy z nich podaje prawidłową odpowiedź jaką jest 1, drugi natomiast zawsze wskazuje zero, niewazne jakiego ustawi się x'a. (program z założenia miał liczyć wartość sinusa za pomocą rozwinięcia w szereg. Z góry dziękuję za odpowiedź :)
Pierwszy program:
#include <stdio.h>
double szereg(double x)
{
double s, w;
int i;
s=x;
w=x;
for(i=1;i<=100;i++)
{
w=-w*x*x/(2*i*(2*i+1));
s=s+w;
}
return s;
}
int main()
{
double x;
x=1.57;
printf("%.4lf\n",szereg(x));
}
Drugi program:
#include <stdio.h>
int main()
{
double x;
double s, w;
int i;
x=1.57;
s=x;
w=x;
for(i=1;i<=100;i++)
{
w=-w*x*x/(2*i*(2*i+1));
s=s+w;
}
printf("%.4lf\n", &s);
}