Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ I';我试图在数组中得到一个随机元素,为什么我的简单代码不能工作?_C++_Arrays - Fatal编程技术网

C++ I';我试图在数组中得到一个随机元素,为什么我的简单代码不能工作?

C++ I';我试图在数组中得到一个随机元素,为什么我的简单代码不能工作?,c++,arrays,C++,Arrays,我试图让这段代码在更大的解决方案中工作,问题是代码的随机部分永远不会得到-1,只有0、1或2,而2甚至不在数组中。我想不出这个,但它可能很简单 #include <iostream> #include <time.h> using namespace std; int main() { srand(time(NULL)); int dy(0), dx(0); const int setSize = 3; int numbers[setSi

我试图让这段代码在更大的解决方案中工作,问题是代码的随机部分永远不会得到-1,只有0、1或2,而2甚至不在数组中。我想不出这个,但它可能很简单

#include <iostream>
#include <time.h>
using namespace std;

int main() {
    srand(time(NULL));
    int dy(0), dx(0);
    const int setSize = 3;
    int numbers[setSize] = { -1, 0, 1 };

    for (int i(0); i < 50; ++i) {
        dy = 0; dx = 0;
        while (dx == 0 && dy == 0) { // makes sure the zombie actually moves somewhere
            dx = rand() % setSize;
            dy = rand() % setSize;
        } 

        cout << "\n" << dy << "\t" << dx;
    }

    system("pause");

}
#包括
#包括
使用名称空间std;
int main(){
srand(时间(空));
int-dy(0),dx(0);
常数int setSize=3;
整数[setSize]={-1,0,1};
对于(int i(0);i<50;++i){
dy=0;dx=0;
而(dx==0&&dy==0){//确保僵尸实际移动到某个地方
dx=rand()%setSize;
dy=rand()%setSize;
} 
cout
rand()%setSize
将给出一个最大值,但不包括您注意到的
setSize
。您需要将其用作数组索引以获取数组的随机成员

dx = numbers[rand() % setSize];

你从未真正访问数组中的值。请尝试
numbers[dx]
numbers[dy]
。谢谢。应该知道,代码怎么能工作哈。这是漫长的一天。天啊,我已经做了一整天了,我想我需要让我的大脑休息一下。非常感谢。