Массив со строками неповторяющихся чисел от 1 до 8, заполненный случайным образом - C (СИ)
Формулировка задачи:
Всем доброго времени суток! Прошу указать мне на ошибку. Стою на месте, не могу никак сдвинуться. Нужно, чтобы в каждой строке случайным образом были расставлены числа от 1 до 8. И самое главное, чтобы они не повторялись.
Листинг программы
- int main()
- {
- srand(time_t(NULL));
- int N = 8;
- int **Population = new int*[N];
- for (int i = 0; i<N; i++) Population[i] = new int[N];
- int q = 0;
- bool flag;
- for (int i = 0; i < N; i++) {
- for (int j = 0; j < N; j++) {
- q = rand() % N;
- flag = 1;
- for (int b = 0; b < j; b++) {
- if (Population[b][i] == q)
- flag = 0;
- if (flag)
- Population[j][i] = q;
- else j--;
- }
- }
- }
- for (int i = 0; i < N; i++) {
- for (int j = 0; j < N; j++) {
- cout << Population[i][j] << ' ';
- }
- cout << "\n";
- }
- for (int i = 0; i<N; i++) delete[]Population[i];
- delete[]Population;
- return 0;
- }
Решение задачи: «Массив со строками неповторяющихся чисел от 1 до 8, заполненный случайным образом»
textual
Листинг программы
- int arrTmp[8]={0};
- for(int i=0;k=1; i<8;i++,k++)
- {
- for(j=0;j<8;j++)
- {
- int tmp;
- do{
- tmp=rand()%8;
- } while(arrTmp[tmp]==k);
- arrTmp[tmp]=k;
- Population[i][j]=tmp+1;
- }
- }
Объяснение кода листинга программы
В этом коде:
- Создается массив
arrTmp
размером 8, заполненный нулями. - В цикле
for
перебираются индексы от 0 до 7. - Внутри цикла
for
создается переменнаяtmp
типаint
, которая инициализируется случайным числом от 0 до 7 с помощью функцииrand()
. - Далее, в цикле
do-while
, проверяется, что элемент массиваarrTmp
с индексомtmp
равен текущему значению переменнойk
. Если это так, то генерация случайного числа повторяется. - Если элемент массива
arrTmp
с индексомtmp
не равен текущему значению переменнойk
, то в этот элемент записывается текущее значение переменнойk
. - Затем, в массив
Population
записывается значениеtmp+1
. - По завершении цикла
for
выводится сообщение. Таким образом, в результате выполнения этого кода, в массивеPopulation
будут храниться строки, состоящие из неповторяющихся чисел от 1 до 8, заполненные случайным образом.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д