(C代码)每个骰子都有自己的功能,我想要一个能够对每个骰子的结果求和的函数。但是,如何从第一个和第二个函数中检索值并将它们放入第三个函数中求和?见下文
int roll_die1(void)
{
int random_int;
srand((unsigned int)time(NULL));
random_int = rand() % (6) + 1;
printf("The outcome of your first Roll is: %d.\n", random_int);
return random_int;
}
int roll_die2(void)
{
int random_int2;
srand((unsigned int)time(NULL));
random_int2 = rand() % (6) + 1;
printf("The outcome of your second Roll is: %d.\n", random_int2);
return random_int2;
}
int calculate_sum_dice(int die1_value, int die2_value)
{
int sum = die1_value + die2_value;
return sum;
}
现在我不能只将前两个函数调用到第三个函数中,因为它会重复这些函数中的所有步骤,所以我该怎么做?
编辑:在我的main.c中,得到我做的总和
roll1 = roll_die1();
roll2 = roll_die2();
sum = calculate_sum_dice(roll1, roll2);
答案 0 :(得分:2)
只需允许roll_die1()
从roll_die2()
和calculate_sum_dice()
检索结果并返回总和。它们不需要包含srand()
的任何函数参数。您也可以在main()
中拨打rand()
一次,因为它只为#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int roll_die1(void) {
int random_int;
random_int = rand() % (6) + 1;
printf("The outcome of your first Roll is: %d.\n", random_int);
return random_int;
}
int roll_die2(void) {
int random_int2;
random_int2 = rand() % (6) + 1;
printf("The outcome of your second Roll is: %d.\n", random_int2);
return random_int2;
}
int calculate_sum_dice(void) {
int sum = roll_die1() + roll_die2();
return sum;
}
int main(void) {
srand((unsigned int)time(NULL));
int sum = calculate_sum_dice();
printf("Dice sum = %d\n", sum);
return 0;
}
设置种子,因此多次调用它是毫无意义的。正如@Jonathan Leffler在评论中指出的那样,看看srand(): why call it just once?。
以下是您的代码应该是什么样的:
{{1}}