簡體   English   中英

我試圖在數組中得到一個隨機元素,為什么我的簡單代碼不起作用?

[英]I'm trying to get a random element in an array, why wont my simple code work?

我試圖讓這段代碼在更大的解決方案中工作,問題是代碼的隨機部分永遠不會得到-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");

}

謝謝大家。

正如您所注意到的, rand() % setSize將給出一個最多但不包括setSize 您需要將其用作數組索引以獲取數組的隨機成員。

dx = numbers[rand() % setSize];

rand()%setSize函數返回0和setSize之間的整數值。 因為您將setSize指定為3,所以范圍將為0,1,2。

dx = (rand() % 3)-1; // use this to get -1 or 0 or 1 in random.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM