Вычислить и вывести на экран значение математической функции F - C (СИ)

Формулировка задачи:

Вообще задача такая: Вычислить и вывести на экран значение математической функции F. Вычисление значения функции F необходимо выполнить с использованием функции calculate, в которую передаются четыре параметра: x, a, b, c, которые являются целыми положительными числами и вводятся с клавиатуры. Вывод параметров и результата вычисления функции необходимо вынести в отдельную функцию print. F=1) ax2+b2x, если |a|>3, x!=0; 2)sqr(x)-F(a)(число фиббоначи)/x, если a>0, x>0 3) else 1+x/c Вот, что я наклепала, но "это" выдаёт кучу ошибок, может кто подправить и объяснить? Заранее огромнейшее спасибо!!
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <locale.h>
float fib(int a);
void print ();
 
float main()
{
    setlocale (LC_ALL, "russian");
    int a,b,c;
    float x;
    printf("Введите x = ");
    scanf_s ("%d", &x);
    printf("Введите a = ");
    scanf_s ("%d", &a);
    printf("Введите b = ");
    scanf_s ("%d", &b);
    printf("Введите c = ");
    scanf_s ("%d", &c);
    _getch ();
 
}   
int fib(a)
{
    if(a==0||a==1) 1;
    return fib(a-1)+fib(a-2);
}
 
float calculate(int a,b,c,x, float F)
{
if (abs(a)>3, x!=0) F=a*x*x+b*b*x;
if (a>0, x>0) F=sqrt(x)-fib/x;
else F=1+x/c;
return F;
 
void print (a)
{
    printf("%f", F);
}

Код к задаче: «Вычислить и вывести на экран значение математической функции F - C (СИ)»

textual
#include <math.h>   // sqrt
#include <stdio.h>  // fgets
#include <stdlib.h> // strtol
 
double fib(unsigned a)
{
    double fnow = 0.0;
    double fnext = 1.0;
    double tempf;
    while( --a ) {
        tempf = fnow + fnext;
        fnow = fnext;
        fnext = tempf;
    }
    return fnext;
}
 
double f1(double x, double a, double b)
{
    return x * (a * x + b * b);
}
 
double f2(double x, unsigned a)
{
    return sqrt(x) - fib(a) / x;
}
 
double f3(double x, double c)
{
    return 1.0 + x / c;
}
 
double calculate(unsigned x, unsigned a, unsigned b, unsigned c)
{
    if( a > 3 && x != 0 ) return f1(x, a, b);
    if( a > 0 && x > 0 ) return f2(x, a);
    return f3(x, c);
}
 
unsigned input(const char* var_name)
{
    static char buf[10];
    printf("Input %s: ", var_name);
    fflush(stdin);
    fgets(buf, sizeof(buf), stdin);
    return strtol(buf, NULL, 10);
}
 
void print(unsigned x, unsigned a, unsigned b, unsigned c, double f)
{
    printf("x = %i\na = %i\nb = %i\nc = %i\nf = %f\n", x, a, b, c, f);
}
 
int main(void)
{
    unsigned x = input("x");
    unsigned a = input("a");
    unsigned b = input("b");
    unsigned c = input("c");
    double f = calculate(x, a, b, c);
    print(x, a, b, c, f);
    return 0;
}

12   голосов, оценка 3.917 из 5


СОХРАНИТЬ ССЫЛКУ