Неверный вывод при определенном значения СИ

есть программа:

#include <stdio.h>
#include <math.h>
 
int i=0;
int n=0;
float sum = 0.0f;
float x=0.0f;
float m=0.0f;
 
 
float func (int n,float x) {
 
for (i=1;i<=n;++i)
{
sum=sum+( (x+cos((i*x*180)/M_PI))/(pow(2,i ) ) )   ;
}

return(sum);

}
 
 
int main()
{
 
printf(" Введите n ") ;
scanf("%d",&n);
printf(" Введите x ") ;
scanf("%f",&x);
 
if (n>0) {
    m=func(n,x);
printf("Вывод: %f",m);
}

else  {
   printf("Неверное значение n,проверьте введённые вами данные");  
     
}
 
return 0;
}

При значениях n=2 и x=1.57 выдает неверный результат, должно получиться 0,92...Почему!? И еще вопрос,как нужно записывать дробное число,через точку или запятую,в онлайн-компиляторе выдает разные значения.


Ответы (0 шт):