Я пишу программу, которая вычисляет значение функции нормального распределения, данное мне здесь:
Программа должна запрашиватьпользователь для среднего значения μ и стандартного отклонения σ для нормального распределения, показанного выше.Затем программа запрашивает N значений x , а затем запрашивает каждое значение x , одно за другим.После каждого значения x выписывается соответствующее значение функции.
Пока это мой код:
#define _USE_MATH_DEFINES
#include <stdio.h>
#include <math.h>
int main() {
int j;
double u, stddev, N, result, x;
printf("Enter u and stddev for the Normal Distribution:\n");
scanf("%lf %lf",&u, &stddev);
printf("Enter how many values of x (N) for the Normal Distribution:\n");
scanf("%lf",&N);
for (j=0; j<N; j++) {
printf("Enter a value for x: \n");
scanf("%lf",&x);
result = ((1)/(stddev*sqrt(2*M_PI)))*exp(-(1/2)*((x-u)/stddev)*((x-u)/stddev));
printf("%.6lf\n", result);
}
}
Я в основном закончил, но ответыпрограмма дает мне неправильные данные по сравнению с моими ответами из моего калькулятора.Например, когда я делаю N = 3 независимо от того, что я положил для 3 значений x , ответ, который он мне дает для каждого из них, одинаков, когда их не должно быть.
Итак, я знаю, что моя проблема заключается в этой строке кода:
result = ((1)/(stddev*sqrt(2*M_PI)))*exp(-(1/2)*((x-u)/stddev)*((x-u)/stddev));
Я просто неправильно пишу функцию в программе?Должно быть, чтобы это не сработало.