Использование scanf для вывода стандартной логистической функции x? - PullRequest
0 голосов
/ 07 сентября 2018

Мне нужно создать код, который предлагает кому-то ввести одно число с плавающей запятой и вывести значение стандартной логистической функции, примененной к вводимому номеру, с помощью scanf.

Логистическая функция определяется как:

                     L

 f(x) = ----------------------

           1 + e^(-k(x - x0))

Вот что у меня есть:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int main()
{
float number;
 printf("Enter an integer: ");
  scanf("%f",&number);
}

Итак, мой вопрос: какой код я могу написать, чтобы программа выводила правильное значение? Я думаю, что наиболее важно, как я могу включить логистическую функцию в код? Все переменные должны быть объявлены как float. Заранее большое спасибо!

1 Ответ

0 голосов
/ 07 сентября 2018

Просто напишите функцию, которая выполняет вычисления, и вызовите ее, как это делается в приведенном ниже коде. Надеюсь, что это служит вашей цели.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>


float logistic(float x, float x0, float k)
{

    return (1 / ( 1 - exp(-k * ( x - x0)))) ;
}

int main()
{
    float number;
    printf("Enter an integer: ");
    scanf("%f",&number);
   /* Let x0= 1.0 and  k= 2.0 for simplicity */
   /* You can change it whenever you want */
   float x0= 1.0, k= 2.0;

   printf(" Logistic value is %f ",logistic(number, x0 , k) );
}

Спасибо, ребята, за ваши предложения.

...