"rand()" 不工作,每次执行后我总是得到相同的数字
"rand()" not working, i keep getting the same number after every execute
所以我正在为我的编程创建一个 ATM 程序 class,长话短说,我必须创建大约四个随机数。我的问题是我的程序不会创建不同的数字,我在执行我的程序时得到的数字一遍又一遍地相同。
我的 main 函数中有 srand(time(NULL));
,因为我的变量是全局变量,所以我试图将它从全局变量旁边的 main 中移出,这给我留下了一个不兼容的错误。 HELPPP!!!!
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
int account_number = rand() % 5, pin = rand() % 3, chk_acc_bal = rand() % 4, sav_acc_bal = rand() % 5;
srand
是一个函数调用,this不能放在文件范围内,只能放在declarations里面。
留在main
,这是它应该在的地方。
通话
srand(time(NULL));
一次在 main
的开头。要使用 rand
使用一些随机值初始化全局变量,请使用:
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
int account_number, pin, chk_acc_bal, sav_acc_bal;
int main()
{
srand(time(NULL)); //Call srand in the start of main
account_number = rand() % 5; //Initialize variables with a random value from here
pin = rand() % 3;
chk_acc_bal = rand() % 4;
sav_acc_bal = rand() % 5;
//Rest of the code
这里的问题是您正试图通过函数调用在文件范围内初始化变量。
只需尝试在主函数中初始化变量。类似的东西(我测试过并且有效):
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
int account_number, pin, chk_acc_bal, sav_acc_bal;
int main(void)
{
srand(time(NULL));
account_number = rand() % 5;
pin = rand() % 3;
chk_acc_bal = rand() % 4;
sav_acc_bal = rand() % 5;
printf("%d\n",account_number);
printf("%d\n",pin);
printf("%d\n",chk_acc_bal);
printf("%d\n",sav_acc_bal);
return 0;
}
希望对您有所帮助。最好!
所以我正在为我的编程创建一个 ATM 程序 class,长话短说,我必须创建大约四个随机数。我的问题是我的程序不会创建不同的数字,我在执行我的程序时得到的数字一遍又一遍地相同。
我的 main 函数中有 srand(time(NULL));
,因为我的变量是全局变量,所以我试图将它从全局变量旁边的 main 中移出,这给我留下了一个不兼容的错误。 HELPPP!!!!
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
int account_number = rand() % 5, pin = rand() % 3, chk_acc_bal = rand() % 4, sav_acc_bal = rand() % 5;
srand
是一个函数调用,this不能放在文件范围内,只能放在declarations里面。
留在main
,这是它应该在的地方。
通话
srand(time(NULL));
一次在 main
的开头。要使用 rand
使用一些随机值初始化全局变量,请使用:
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
int account_number, pin, chk_acc_bal, sav_acc_bal;
int main()
{
srand(time(NULL)); //Call srand in the start of main
account_number = rand() % 5; //Initialize variables with a random value from here
pin = rand() % 3;
chk_acc_bal = rand() % 4;
sav_acc_bal = rand() % 5;
//Rest of the code
这里的问题是您正试图通过函数调用在文件范围内初始化变量。
只需尝试在主函数中初始化变量。类似的东西(我测试过并且有效):
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
int account_number, pin, chk_acc_bal, sav_acc_bal;
int main(void)
{
srand(time(NULL));
account_number = rand() % 5;
pin = rand() % 3;
chk_acc_bal = rand() % 4;
sav_acc_bal = rand() % 5;
printf("%d\n",account_number);
printf("%d\n",pin);
printf("%d\n",chk_acc_bal);
printf("%d\n",sav_acc_bal);
return 0;
}
希望对您有所帮助。最好!