1. Список говнокодов пользователя mr_visor

    Всего: 1

  2. Си / Говнокод #5026

    +141

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 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'а доступ к элементам массива осуществлялся с использованием одномерной адресации (по другому никак не получалось :)
    Для сокращения привожу только функции наполнения массива случайными значениями и перестановки элементов.

    mr_visor, 23 Декабря 2010

    Комментарии (48)