Невозможно заполнить массив 10x10 циклами for - PullRequest
0 голосов
/ 12 января 2019

Я пытаюсь заставить эту программу распечатать таблицу значений 10 x 10, взятых случайным образом из массива 4 x 4.

Все строки должны быть длиной 10 записей; почему-то в некоторых строках было 7 и 10 записей. В других случаях их будет ровно 10, но чаще всего один или несколько коротких. Просто пытаюсь понять, как заставить эту вещь каждый раз печатать 10 строк и столбцов. Новое в кодировании.


iostream, cstdlib, string, math.h, time.h

using namespace std;

int main()
{

srand(time(NULL));

string worldMap[10][10];

string envir[4][4] = { {"S1", "S2", "S3", "S4"}, {"P1", "P2", "P3", "P4"},
               {"F1", "F2", "F3", "F4"}, {"D1", "D2", "D3", "D4"} };

for (int i = 0; i < 10; i++)
{   
    for (int j = 0; j < 10; j++)
    {

        int cat = rand()%4+1;
        int subcat = rand()%4+1;
        worldMap[i][j] = envir[cat][subcat];
        cout<<worldMap[i][j];
    }
    cout<<endl;
}
 return 0;
}

1 Ответ

0 голосов
/ 12 января 2019

C ++ использует индексацию с нуля, вы написали rand()%4+1, которая создает число в диапазоне 1-4 и использует его в качестве индекса.

Вместо этого это должно быть просто rand()%4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...