【问题标题】:Normal Distribution/Standard Deviation正态分布/标准偏差
【发布时间】:2023-08-29 16:31:01
【问题描述】:

我的说明:编写一个程序,开始询问用户正态分布的平均值 u 和标准差 s(参见 wiki article

然后程序请求一个 N,然后请求 N 个值 x。对于每个 x,它都会在屏幕上写出 f(x)。请注意,程序仅向用户询问 u、s 和 N 一次。之后,它会一一请求 x 的 N 个值。在每个值 x 之后,它会写出函数的相应值。

我对 N 应该代表什么感到困惑。我以为是 x 的数量,但谁能帮我澄清一下?

#include <stdio.h>
#define _USE_MATH_DEFINES 
#include <math.h>
#include <stdlib.h>

int main()
{
double u,s, N, x1,math1, math2, math3,n, v, x;

printf("Enter Mean: ");
scanf("%lf", &u);
printf("Enter Standard Deviation: ");
scanf("%lf", &s);
printf("Enter number of x's: ");
scanf("%lf", &N);

    for (v=1; v<=N; v++)
    {
    printf("Enter Value: ");
    scanf("%lf", &x);
    n=(-1/2);
    printf("f(x)= ");
    math1 =1/(u*sqrt(2*M_PI));
    math2= (x-u)/s * (x-u)/s;
    math3= M_E * exp(n);
    x1 = math1 * exp(math3)*exp(math2);
    printf("%lf  \n", x1);
    }
system("Pause");
}

【问题讨论】:

  • 嗯,通过阅读您的作业,我认为这正是您的猜测。值的数量。但也许你应该问给你任务的那个人?他/她可以肯定地告诉你。编辑:我也不确定你为什么用“C”标记它,因为这显然不是编程问题?
  • 请在发布任何代码之前修正缩进。
  • @user2023608 我刚刚添加了标签正态分布。不敢删除'c'标签,因为也许我正在监督一些事情
  • 我认为您的math1 分配不正确。正态分布的均值可以为零。

标签: c


【解决方案1】:

N 代表输入数

从这部分非常清楚: for (v=1; v&lt;=N; v++)

【讨论】:

  • 好的,谢谢,这就是我的想法,但不是 100% 确定
【解决方案2】:

如果你的指令是给定的,那么 N 确实代表所需的 x 值的数量。

你的程序就是这样做的,它要求 xN 个值。

首先,它在程序的开头声明了一个变量N

double u,s, N, x1,math1, math2, math3,n, v, x;

然后提示输入为整数:

printf("Enter number of x's: ");
scanf("%lf", &N);

...最后使用该整数读取 xN 个值。

for (v=1; v<=N; v++)
{

【讨论】:

  • 这些是给我的唯一指示,但我总是希望得到一些建议 :)
相关资源