"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;
}

希望对您有所帮助。最好!