Неверный вывод при определенном значения СИ
есть программа:
#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...Почему!? И еще вопрос,как нужно записывать дробное число,через точку или запятую,в онлайн-компиляторе выдает разные значения.