在将数字随机生成为数组期间从内存输出随机数的数组
Array outputting random numbers from memory during random generation of numbers into an array
#ifndef REQUESTGENERATOR_H_
#define REQUESTGENERATOR_H_
#include <iomanip>
#include <iostream>
using namespace std;
class requestGenerator {
public:
int randomStar = 0;
int amountOfEvents = 0;
int randomEventArray[10];
int possibleEventArray[15] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
void generator() {
while (randomStar <= 2) {
randomStar = rand() % 5;
}
cout << randomStar << endl;
while (amountOfEvents == 0) {
amountOfEvents = rand() % 10;
}
cout << amountOfEvents << endl;
for (int i = 0; i != amountOfEvents; i++) {
bool numberGened = false;
while (numberGened = false) {
randomEventArray[i] = rand() % 15;
if (possibleEventArray[i] != -1) {
numberGened = true;
possibleEventArray[i] = -1;
}
}
cout << randomEventArray[i] << " ";
}
}
};
#endif /*REQUESTGENERATOR_H_ */
当它输出生成的数字时,它给出了-858993460九次。我不知道为什么possibleEventArray"用于保存所有可能的值。当生成的数字进入randomEventArray 时
由于这个while (numberGened = false)
,您从未真正填充过数组。您缺少了第二个等号。如前所述,您所要做的只是将numberGened
设置为false
,甚至不进入循环,因为numberGened = false
返回值,即false
。
其他一些不请自来的评论:
while (randomStar <= 2) {
randomStar = rand() % 5;
}
如果这是为了生成一个介于3和5之间的随机数,那么可以使用randomStart = 3 + rand() % 3
来实现,而不是while循环。
这个for (int i = 0; i != amountOfEvents; i++)
应该真的是i < amountOfEvents
,否则如果在amountOfEvents
之外的某个地方修改i,就有可能出现一个非常长的循环。
相关文章:
- unordered_map 与地图与数组 - 内存分析
- 字符指针数组内存分配
- SystemC sc_signal数组内存边界
- 在分配指向数组内存地址的指针时,为什么不必使用地址运算符?
- 指向结构的指针的 2D 数组.内存访问问题
- 连接数组,数组 1 内存消失C++
- 无法使用 GetProcessMemoryInformation 测量静态数组内存使用情况
- 2D 数组内存分配 (malloc) 返回 NULL
- 删除指针成员变量的数组内存
- C++类数组内存重新分配
- 处理静态数组内存C++的内存不足情况
- 为什么析构函数不释放数组内存?
- 获取 std::array 底层数组内存大小的最简单方法?
- C 4D数组内存Deallocation速度很慢
- char*数组内存泄漏
- 数组内存地址总是按最小到最大的顺序排列吗
- C++中的Char*数组内存分配
- 动态数组内存分配如何工作
- JNA 本机函数调用和具有双**指针/数组内存分配的结构
- 了解字符数组内存分配