2016-11-10 76 views
0
#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中的值。有谁知道问题是什么,因为我试图解决它,但我无法弄清楚。功能参数被称为

我想获得一个随机函数的双重值为我的程序。我认为它会这样工作,但不幸的是它没有。

+1

请您标题改成这样的问题反映了问题的主题,而不是需要帮助的请求。另外我怀疑[tag:eclipse]是正确的标签。 http://stackoverflow.com/help/how-to-ask –

回答

0

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

double gen(double *dS) { 

*dS=dx/100; 

然后

gen(&dSummand); 
+0

谢谢你现在正在工作。从来没有想过使用指针。 –

+0

或者,使用'double gen(void)'作为函数接口并调用'dS = gen();' - 这也可以很好地工作。 –

+0

这是一个价值副本问题? –