Вычислить и вывести на экран значение математической функции 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»

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;
}

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы: для функции sqrt, для функции fgets, для функции strtol.
  2. Определяются функции: — fib(unsigned a) для вычисления чисел Фибоначчи. — f1(double x, double a, double b) для вычисления значения функции F1. — f2(double x, unsigned a) для вычисления значения функции F2. — f3(double x, double c) для вычисления значения функции F3. — calculate(unsigned x, unsigned a, unsigned b, unsigned c) для выбора и вычисления соответствующей функции в зависимости от переданных параметров. — input(const char* var_name) для считывания ввода пользователя с клавиатуры. — print(unsigned x, unsigned a, unsigned b, unsigned c, double f) для вывода на экран значений переменных и результата вычисления функции.
  3. В функции main() считываются значения переменных x, a, b, c с помощью функции input(), а затем вычисляется и выводится на экран значение функции F с помощью функции calculate() и функции print().

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы