调用函数后,C中的函数参数未被修改

时间:2016-11-10 20:45:58

标签: c

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<time.h>

double gen(double dS) //Function for a random double variable
{
    double dx=0;
    dx=rand()%200+1;
    dS=dx/100;
    return(dS);
}

int main()
{
    double dZahl=0;
    double dTokens=1;
    srand((unsigned)time(NULL));
    double dSummand=0;
    int iGame=0;
    for(;;)
    {
        printf("Deine Tokens:%.2lf\n", dTokens);  //This doesn't really matter
        printf("Was m%cchtest du tun?\n[1]:Generiere Tokens\n[2]:Spiele ein Minigame\n", 148);
        fflush(stdout);
        scanf("%d", &iGame);
        fflush(stdin);
        switch (iGame)
        {
            case 1:
            {
                gen(dSummand);  //function in use
                dTokens=dTokens+dSummand;
                printf("\nDu hast %.2lf Tokens generiert!\n", dSummand);  //the output of the value
                fflush(stdout);
            }
            break;
        }
    }

    getch();
}

问题是dSummand没有从dS获取值。有谁知道问题是什么,因为我试图修复它,但我无法弄明白。

我正在尝试使用函数为我的程序获取一个随机double值。我认为它会像这样工作,但不幸的是它没有。

1 个答案:

答案 0 :(得分:0)

如果您希望dS的值来自修改的函数,则必须传递指针。

double gen(double *dS) {

*dS=dx/100;

然后

gen(&dSummand);