如何在制作骰子卷时成功地使用C中的rand,而不需要1000圈才能正确使用?

如何在制作骰子卷时成功地使用C中的rand,而不需要1000圈才能正确使用?,c,random,time,std,dice,C,Random,Time,Std,Dice,因此,我成功地制作了以下程序,允许用户输入一个数字(介于1到12之间),然后告诉用户在尝试了多少次之后,两个骰子成功地滚动了最初键入的数字。 所以如果这个人输入7。第一次随机掷骰时,如果两个骰子总数为5,则会显示“掷骰结果1:3+2”等 但由于某种原因,当我这样做时,它需要超过1000圈,然后弹出7个,从而完成程序。骰子的赔率应该在1/12左右,而不是1/1000,所以我知道我的编码有问题。如果有人能帮我找出问题所在,那就太好了 这是我到目前为止的代码 #include <stdio.h&

因此,我成功地制作了以下程序,允许用户输入一个数字(介于1到12之间),然后告诉用户在尝试了多少次之后,两个骰子成功地滚动了最初键入的数字。 所以如果这个人输入7。第一次随机掷骰时,如果两个骰子总数为5,则会显示“掷骰结果1:3+2”等

但由于某种原因,当我这样做时,它需要超过1000圈,然后弹出7个,从而完成程序。骰子的赔率应该在1/12左右,而不是1/1000,所以我知道我的编码有问题。如果有人能帮我找出问题所在,那就太好了

这是我到目前为止的代码

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

int main(void){

int sought;
int roll1 = 7;
int roll2 = 7;
int minAmount = 0;
int maxAmount = 6;
int counter = 0;

printf("Dice Thrower\n");
printf("==============\n");
printf("Total Sought : ");
scanf("%d", &sought);
while (sought > 12){
        printf("Bad Input! Try Again!\n");
        printf("Total Sought : ");
        scanf("%d", &sought);
        }

while (sought != roll1 + roll2){
counter++;
srand(time(NULL));
roll1 = minAmount + rand() % (maxAmount + 1 - minAmount);
roll2 = minAmount + rand() % (maxAmount + 1 - minAmount);
printf("Result of Throw %d : %d + %d\n", counter, roll1, roll2);
}
printf("You got your total in %d throws!\n", counter);
}
#包括
#包括
#包括
内部主(空){
int寻求;
int-roll1=7;
int-roll2=7;
int-minAmount=0;
int MAXAMUNT=6;
int计数器=0;
printf(“掷骰子者”);
printf(“=========================\n”);
printf(“寻求的总额:”);
scanf(“%d”,搜索(&d));
而(搜索次数>12){
printf(“输入错误!重试!\n”);
printf(“寻求的总额:”);
scanf(“%d”,搜索(&d));
}
while(已寻道!=roll1+roll2){
计数器++;
srand(时间(空));
roll1=minAmount+rand()%(最大金额+1-minAmount);
roll2=minAmount+rand()%(最大金额+1-minAmount);
printf(“抛出%d的结果:%d+%d\n”,计数器,roll1,roll2);
}
printf(“您的总投掷次数为%d次!\n”,计数器);
}

每次掷骰子时,您都会不断调用
srand()
。也就是说,使用每行的当前时间初始化随机种子。因此,结果每1秒仅更改一次(不是每卷更改一次)


srand(time(NULL))
移动到while循环的前面。

每次掷骰子时,您都会不断调用
srand()
。也就是说,使用每行的当前时间初始化随机种子。因此,结果每1秒仅更改一次(不是每卷更改一次)


srand(time(NULL))
移动到while循环的前面。

以前曾多次以多种形式提出过类似的问题。请搜索……类似问题的可能副本以前曾多次以多种形式提出。请搜索…可能的副本