170 похожих чатов

Привет всем ! некогда делал простой код с заполнением одномерного

массива уникальными числами (с помощью rand и srand). возможно ли подобное с двумерным массивом? На данный момент добился уникальных чисел в строках , но вот в столбцах есть повторения.

9 ответов

12 просмотров

Добавлять число в другой временный массив и проверять, есть ли новое псевдорандомное число уже в массиве? Или проверять, если ли в двумерном массиве уже это число. Проходить вложенным циклом слева направо сверху вниз.

BBD-2k22 Автор вопроса
Дмитрий 🎮
Добавлять число в другой временный массив и провер...

я не могу грамотно составить условие и он лезет в неинициализированные ячейки массива

bool arrayHasUniqueValue(int* array, int xSize, int ySize, int number) { for(int i { }; i < xSize; ++i) { for(int j { }; j < ySize; ++j) { if(array[i * xSize + j] == number) { return false; } } } return true; } int main() { const int xSize { 5 }, ySize { 5 }; int array[xSize * ySize] { }; for(int i { }; i < xSize; ++i) { for(int j { }; j < ySize; ++j) { bool numberIsUnique { }; do { int number { rand() }; numberIsUnique = arrayHasUniqueValue(array, i, j, number); if(numberIsUnique) { array[i * xSize + j] = number; } } while(numberIsUnique == false); } } return 0; } На скорую руку такое получилось. Алгоритм 100% можно и нужно написать лучше. Например, цикл do while переделать, чтобы убрать лишний if. Ещё лучше и проще будет на STL.

Дмитрий 🎮
И почему же?

Много причин, самая первая и простая: arrayHasUniqueValue никак не учитывает сколько элементов в массиве уже заполнено.

Дмитрий 🎮
Да с чего бы это?

В функцию передаётся не xSize и ySize, а i и j.

Дмитрий 🎮
Да с чего бы это?

Да, не обратил внимание.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта