C中通过函数的随机数(初学者程序员)
我创建了一个简单的游戏,让用户猜测1到10之间的随机数。它工作得很好,然后我对它进行了调整,在这里我制作了一个函数,它有两个参数,一个高值和一个低值,来生成一个随机数。当函数返回随机数时,通过函数执行此操作总是返回作为参数输入的最大数字的值。这是我的密码:C中通过函数的随机数(初学者程序员),c,function,random,C,Function,Random,我创建了一个简单的游戏,让用户猜测1到10之间的随机数。它工作得很好,然后我对它进行了调整,在这里我制作了一个函数,它有两个参数,一个高值和一个低值,来生成一个随机数。当函数返回随机数时,通过函数执行此操作总是返回作为参数输入的最大数字的值。这是我的密码: #include "stdio.h" #include "stdlib.h" #include "time.h" int main(void) { int storedNum, low, high, userGuess; pri
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int main(void) {
int storedNum, low, high, userGuess;
printf("Welcome to my random numbers game! You will choose a lower number and a maximum number and me, the computer, will choose a random number between those two values for you to guess.\n\nFirst, choose the lowest value");
scanf("%d", &low);
printf("Now, choose the highest value");
scanf("%d", &high);
storedNum = randomNumbers(low, high);
printf("We have guessed a number between %d and %d. Guess our number!: ", low, high);
scanf("%d", &userGuess);
while (userGuess != storedNum){
if(userGuess < storedNum){
printf("higher!: ");
scanf("%d", &userGuess);
}
else{
printf("Lower!: ");
scanf("%d", &userGuess);
}
}
printf("You are correct the number was %d!", storedNum);
return 0;
}
int randomNumbers(int maxNum, int minNum){
int number;
srand(time(NULL));
number = rand()%maxNum + minNum;
return number;
}
无论我输入什么数字,它总是返回最大值(在本例中为10)。提前感谢您的帮助,我希望这篇文章能让您感觉良好。rand()非常直截了当
rand()%maxNum + minNum;
rand()
将生成一个介于0
和rand\u MAX
之间的数字
rand%maxNum
将是一个数字对,我只是想弄清楚为什么它在主方法中的行为与在函数中的行为不同。不要在函数中设置随机种子。它不添加任何额外的随机数。在main
中执行一次。可能不是问题的根本原因,而是:随机数(低、高)代码>-->随机数(高、低)代码>。或者交换函数定义中的参数顺序。我已经尝试过了,但仍然遇到同样的问题,很抱歉,我也应该把它放在帖子中,我会编辑。我尝试在调用函数之前放置种子,但它仍然会产生相同的结果。不过谢谢你。@kaylum我觉得自己像个十足的白痴。当然,我忽略了这么简单的事情。非常感谢你的帮助这是唯一的错误,非常感谢你抓住了我的愚蠢。这段代码应该为丢失的原型生成警告。不要写古C!多亏了这个公式,当涉及到更大的数字时,我遇到了一些问题,然而,我的实际问题在于,当我调用函数时,我的参数放在了错误的位置。这么简单的东西哈!非常感谢这个公式,不过它会派上用场的!
rand()%maxNum + minNum;