- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
void array_random_input(int *array, unsigned int *array_size)
{
unsigned register int i, j;
for(i=0; i<(*array_size); i++)
for(j=0; j<(*array_size); j++)
*(array + (*array_size) * i + j) = rand()%100;
}
void array_recombination(int *array, unsigned int *array_size)
{
unsigned register int i, j, tmp;
for(i=0; i<(*array_size)/2; i++)
for(j=0; j<(*array_size)/2; j++)
{
tmp = *(array + (*array_size) * i + j);
*(array + (*array_size) * i + j) = *(array + (*array_size) * ((*array_size)/2 + i) + ((*array_size)/2 + j));
*(array + (*array_size) * ((*array_size)/2 + i) + ((*array_size)/2 + j)) = tmp;
}
for(i=0; i<(*array_size)/2; i++)
for(j=(*array_size)/2; j<(*array_size); j++)
{
tmp = *(array + (*array_size) * i + j);
*(array + (*array_size) * i + j) = *(array + (*array_size) * ((*array_size)/2 + i) + (j - (*array_size)/2));
*(array + (*array_size) * ((*array_size)/2 + i) + (j - (*array_size)/2)) = tmp;
}
}
//ardent greetings to my teacher F.S.V.! :)
Условие задачи: необходимо создать динамический двумерный массив размерностью 2n и сделать перестановку крест накрест его четвертей. В качестве параметров все функции принимают указатели. Для пущего brainfuck'а доступ к элементам массива осуществлялся с использованием одномерной адресации (по другому никак не получалось :)
Для сокращения привожу только функции наполнения массива случайными значениями и перестановки элементов.