0

这是说明:编写一个程序,开始向用户询问正态分布的平均值 u 和标准差 s(参见 wiki 文章http://en.wikipedia.org/wiki/Normal_distribution 该程序然后要求N,然后询问 N 个值 x。对于每个 x,它会在屏幕上写出 f(x)。请注意,程序只向用户询问 u、s 和 N 一次。之后,它会询问 x 的 N 个值,一个接一个。在每个值 x 之后,它写出函数的相应值。当然,为此使用双精度并使用标准数学库中的平方根和指数函数。

到目前为止,这是我的代码,但我无法让 N 工作。

#include <stdio.h>
#define PI 3.141592653589793238462643383
#define E 2.7182818284590452353602874713526624977572470937
#include <math.h>
#include <stdlib.h>
int main()
{
double u,s,N,x,math1, math2, math3,n,;
printf("Enter Mean: \n");
scanf("%d", &u);
printf("Enter Deviation: \n");
scanf("%d", &s);


    n=1/2;
math1 =1/(u*sqrt(2*PI));
math2= (x-u)/s * (x-u)/s;
math3= E * exp(n);
x = math1 * exp(math3)*exp(math2);
printf("%d \n", x);
system("Pause");
}
4

1 回答 1

1
n=1/2;

这将等于 0,因为 1 是整数,2 是整数,1 除以 2 是整数数学中的 0。

尝试1.0/2.0

确保每个其他除法的一侧或两侧都有一个双精度数,否则它将作为整数数学完成

于 2013-01-24T02:54:29.320 回答