PDA

Просмотр полной версии : [Вопрос] Обращение к элементу массива



Alexok
30.11.2016, 00:24
Предположим, у нас есть некий массив. Его структура:


enum E_TEST_STRUCT
{
T_ID,
T_LIST[5]
};

new g_test[][E_TEST_STRUCT] =
{
{0, {0, 0, 0, 0, 0}},
{1, {1, 3, 9, 6, 1}}
};


Задача в состоит в том, чтобы вывести случайное число (1, 3, 9, 6 или 1) из элемента массива T_LIST[5] внутри массива g_test.
Пробовал различные махинации, любимый Pawn либо ругается, либо всегда выводит лишь первое число (1).

nekaz
30.11.2016, 00:36
1. T_LIST[6]. А-ля с 0 начинаем счет.
2. функция random. g_test[1][T_ID], g_test[1][T_LIST][random(5)]. Где 1 - строка({0, {0, 0, 0, 0, 0}}, или {1, {1, 3, 9, 6, 1}} (в нашем случаи). где random(5) - рандомно выберем с строки значение.

Daniel_Cortez
30.11.2016, 09:33
Примерно то же самое, что и объяснили выше, но для большей надёжности советую завести константу под размер массива.
Подробности можете узнать здесь (http://pro-pawn.ru/showthread.php?8347), см. пункт 7.


#include <a_samp>

const TLIST_SIZE = 5;
enum E_TEST_STRUCT
{
tID,
tList[TLIST_SIZE]
};
new g_test[][E_TEST_STRUCT] =
{
{0, {0, 0, 0, 0, 0}},
{1, {1, 3, 9, 6, 1}}
};

main()
{
printf("random element: %d", g_test[1][tList][random(TLIST_SIZE)]);
}

Alexok
30.11.2016, 23:15
Благодарю, проблема успешно решена. Видимо, был настолько сонным, что не смог сделать элементарную вещь.

Прошу модераторов закрыть тему.