首页 > 解决方案 > main 内部的纯函数没有按照我的意图获取和处理 x 的单个值

问题描述

我已经尝试指向变量 x 并在 for 循环中声明它,我相信这是我的范围或函数声明的问题。我不明白为什么我的教授要求我们在 main() 中声明该函数,而我使用过的所有其他编程语言都是在外部完成的。我相信他试图教我们一些关于范围的知识,但到目前为止,它只是让我对什么是错的什么是对的感觉变得混乱了。任何帮助将不胜感激我一直在玩这个东西几个小时!真诚的,JJC

int main(void)
{
    const double sigma, mu;
    double  x;

    int no_x;

    double normal(x, sigma, mu)
    {   
        return (x * sigma * mu);
    }

    printf("Enter mean u: ");   
    scanf("%lf", &mu);

    printf("Enter standard deviation: ");   
    scanf("%lf", &sigma);

    if(sigma == 0)
    {
        printf("error you entered: 0");
        exit(0);
    }

    printf("Number of x values: "); 
    scanf("%d", &no_x);

    for(int i = 1; i <= no_x; i++)
    {
        printf("x value %d : ", i);

        scanf("%lf", &x);

        printf("f(x) = : ");
        normal(x,sigma,mu);

        printf("");
        printf("\n");
    }

    return 0;
}

预期成绩

C:\>.\a.exe
Enter mean u: 3.489
Enter std dev s: 1.203
Number of x values: 3
x value 1: 3.4
f(X) = 0.330716549275
x value 2: -3.4
f(X) = 0.000000025104
x value 3: 4
f(X) = 0.303015189801

标签: cfunctionfor-loopparameter-passingpure-virtual

解决方案


你放弃了回报normal

尝试:

x = normal(x,sigma,mu);

和/或将返回传递给调用printf(使用适当的格式)


推荐阅读