在c ++ srand中设置随机的最大和最小数字

时间:2014-10-23 04:27:17

标签: c++

在我的程序中,我试图模拟轮盘旋转。目前我设置了38个随机数,但我得到的所有数字都是max int 32767

我认为我设置了max and min错误,但我无法弄清楚如何。

我已经使这样的程序工作正常,所以我真的想了解我在这里缺少的东西。

我想知道它是否与我在创建后显示随机数的函数有关。

我的代码如下,

int spin = 1;
int board;

double_clist cdl;

void Randomize() {
    srand( (unsigned)time( NULL ) ) ;  }

int Random(int Max) { return (rand() % Max) + 1;    }

int main() {

    int spin;
    Randomize();
    for(spin = 1; spin <= 38; spin++) {
        for (spin = 0; spin < 38; spin++) {
            board = Random(38);
            cdl.insert_begin();
            }
        }

    cdl.display();

这是我将每个号码插入列表的功能,

void double_clist::insert_begin()
{
    int value;
    struct node *temp;
    temp = create_node(value);
    if (start == last && start == NULL)
    {
        cout<<"Element inserted in empty list"<<endl;
        start = last = temp;
        start->next = last->next = NULL;
        start->prev = last->prev = NULL;
    }
    else
    {
        temp->next = start;
        start->prev = temp;
        start = temp;
        start->prev = last;
        last->next = start;
        cout<<"Element inserted"<<endl;
    }
}

这是我创建列表后显示列表的功能,

void double_clist::display()
{
    int i;
    struct node *s;
    if (start == last && start == NULL)
    {
        cout<<"The List is empty, nothing to display"<<endl;
        return;
    }
    s = start;
    for (i = 0;i < counter-1;i++)
    {
        cout<<s->info<<"<->";
        s = s->next;
    }
    cout<<s->info<<endl;
}

1 个答案:

答案 0 :(得分:0)

随机数函数很好 - 必须是数据结构中的东西。

#include <iostream>
using namespace std;


void Randomize() {
    srand( (unsigned)time( NULL ) ) ;  }

int Random(int Max) { return (rand() % Max) + 1;    }

int main() {
    for (int i = 0; i < 20; i++)
    {
        int val = Random(38);
        cout << val << " ";
    }
    return 0;
}

<强>输出

Success time: 0 memory: 3296 signal:0
22 35 4 4 30 28 11 31 22 8 21 10 21 30 2 11 27 37 25 29