"兰特()"不工作,我每次执行后都会得到相同的数字

时间:2015-03-17 08:15:21

标签: c random srand

所以我正在为我的编程课创建一个ATM程序,长话短说,我必须创建大约四个随机数。我的问题是我的程序不会创建不同的数字,我执行程序时得到的数字是一遍又一遍。 我在我的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;

3 个答案:

答案 0 :(得分:2)

srand是一个函数调用,这不能放在文件范围内,你只能在那里放置声明。

将它保留在main中,这是它应该存在的地方。

答案 1 :(得分:2)

这里的问题是您尝试使用函数调用在文件范围初始化变量。

尝试在主函数中初始化变量。像(我测试和工作)的东西:

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

希望它有所帮助。最好!

答案 2 :(得分:1)

呼叫

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
相关问题