如何将从函数获得的值分配给 c 中的整数?

How can I assign a value I get from a function to an integer in c?

我正在做一项学校作业,不知道如何做我在标题中要求的事情,不知道如何进行。我得到了代码(由我的教授) 运行 并打印一个骰子卷 (1-6)。

void showDice (int num) {
     int diceRoll;
     srand(time(NULL));
     diceRoll = (rand() %6) +1;
     printf("%d\n", diceRoll);
     }

我知道如何在主函数 ( showDice(0); ) 中调用它并将其打印出来。但我需要知道如何将它作为一个 int (或另一个变量)获取,以便我可以将它添加到一个总计(或计数器)变量中。

谢谢

你可以简单地return它。像,

int showDice (int num) {
     int diceRoll;
     srand(time(NULL));
     diceRoll = (rand() % 6) + 1;
     printf("%d\n", diceRoll);
     return diceRoll;
}

此外,如果您打算 num 作为边数,

int showDice (int num) {
     int diceRoll;
     srand(time(NULL));
     diceRoll = (rand() % num) + 1;
     printf("%d\n", diceRoll);
     return diceRoll;
}

最后,您应该只调用 srand 一次(在程序启动时)。

您可以 return 它(而不是打印它):

int rollDice(int num) {
     int diceRoll;
     srand(time(NULL));
     diceRoll = (rand() %6) +1;
     return diceRoll;
}

去掉一些多余的东西,如果num是边数:

int rollDice(int num) {
     srand(time(NULL));
     return (rand() % num) + 1;
}

你可以做的是将函数的类型更改为 int,这样你就可以 return 一个值,并且只需 return 函数末尾的 diceRoll:

int showDice(int num) {
 int diceRoll;
 diceRoll = (rand() %6) +1;
 printf("%d\n", diceRoll);
 return (diceRoll);
}

然后你可以像这样调用你的函数(注意 srand 应该只调用一次):

int main() {
 int rollDice;
 srand(time(NULL));
 rollDice = showDice(0);
}