0

これが指示でした: 正規分布の平均 u と標準偏差 s をユーザーに求めることから始まるプログラムを作成します (wiki の記事を参照してくださいhttp://en.wikipedia.org/wiki/Normal_distribution プログラムは次に、 N, 次に N 個の値 x を要求します. 各 x に対して f(x) を画面に書き出します. プログラムはユーザーに u, s, N を 1 回だけ要求することに注意してください. その後、x の N 個の値を要求します. , 1つずつ. 各値 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;

1 は整数、2 は整数、整数演算では 1 を 2 で割ると 0 になるため、これは 0 になります。

試す1.0/2.0

他のすべての除算の片側または両側に double があることを確認してください。そうでない場合は、整数演算として行われます。

于 2013-01-24T02:54:29.320 に答える