我一直在研究一个项目,假设通过使用2D数组来模拟链接列表。我有代码,但我无法弄清楚如何使随机数工作。我已经在线查看,但在线并没有解释如何使随机功能与模拟一起工作。以下是我的代码:
`#include <iostream>
#include <stdlib.h>
using namespace std;
int myTop = -1;
int index = -1;
int next = -1;
int tt[25][2];
void construct()
{
tt[25][2];
}
void empty()
{
if (myTop == -1)
cout << "Empty Stack";
else
cout << "Full Stack";
}
void push(int x)
{
if (myTop < 24)
{
myTop++;
tt[myTop] = x;
}
else
cout << "The stack is full.";
}
void top()
{
if (myTop != -1)
cout << "Top Value is: " << tt[myTop];
else
cout << "Empty Stack";
}
int pop()
{
int x;
if(myTop<=0)
{
cout<<"stack is empty"<<endl;
return 0;
}
else
{
x=tt[myTop];
myTop--;
}
return(x);
}
void display()
{
for (int row=0; row<25; row++)
{
for (int column=0; column<3; column++)
{
cout << tt[row][column] << "\t";
if (column == 2)
cout << endl;
}
}
cout << endl;
}
int main()
{
push(rand() % 25);
display();
push(rand() % 25);
display();
push(rand() % 25);
display();
push(rand() % 25);
display();
top();
pop();
display();
top();
pop();
display();
top();
pop();
display();
}
答案 0 :(得分:4)
您尚未初始化随机数生成器(这称为“播种”)。
将以下内容添加到您的代码中。
#include <time.h>
srand (time(0));
另一方面,我更喜欢使用ctime
和cstdlib
,因为这些是c ++标题(尽管可以辩论)。另外,如果您有权访问最新的编译器,请查看random
标题。
答案 1 :(得分:2)
兰德(): http://www.cplusplus.com/reference/clibrary/cstdlib/rand/
srand()函数: http://www.cplusplus.com/reference/clibrary/cstdlib/srand/
答案 2 :(得分:0)
以下是如何在C ++中使用随机数
#include <cstdlib>
#include <ctime>
int main ()
{
srand(time(NULL));
number = rand() % 10 + 1; # Random number between 1 and 10
}