Нужно float, а выводит int
Сразу извиняюсь за такой большой код, но когда я его немного меняю всё начинает работать.
Вся проблема в самой функции sum(), мне нужно что бы из неё выходило число не округленое, а такое как оно есть. Сейчас вывод функции sum() такой:
Result: 1.000000
Result: 13.000000
Result: 13.000000
#include <stdio.h>
#include <math.h>
float sum(int );
int main() {
float y;
double resultat;
printf("Enter y:\n>> ");
scanf_s("%f", &y);
resultat = (1.7*sum(1/4)+2*sum(y+1))/(6-sum(y*y-1));
printf("Resultat is: %f", resultat);
return 0;
}
float sum(int x)
{
int facto = 1;
double res = 1, stepen;
for (int i=1;i<=3;i++)
{
facto=facto*i;
stepen = pow(x, i);
res = stepen/facto + res;
}
printf("Result: %f\n", res);
return res;
}
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
у вас функция от целочисленного параметра
float sum(int x)
а при использовании вы его просто в ноль обращаете
1.7*sum(1/4)
и еще - sum(1/4) всегда означает sum(0) - вы же целые делите на целые, используйте лучше что-то из этого:
sum(1.0/4)
sum(1/4.0)
sum(1.0/4.0)
sum(0.25)
Пример:
Enter y:
>> 1.25
Result: 1.283854
Result: 7.679688
Result: 1.750366
Resultat is: 4.127868