Maks174
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Помогите разобраться 3 день не могу найти ошибку. Дана матрица {aij}, i =1...2m, j = 1...2n. Она разбита на 4 неперекрывающихся блока размером m*n. Перестроить матрицу, переставляя блоки по часовой стрелке с сохранением порядка следования элементов. Вспомогательный массив не использовать. // Example program #define SIZE 4 // Максимальный размер матрицы /*****************************************************************************/ /* Перестроить матрицу, переставляя блоки по часовой стрелке с сохранением порядка следования элементов*/ /*****************************************************************************/ void Perest (short m, // Размеры исходной short n, // матрицы float a[][SIZE], // Исходная матрица short i,j; for (i=0;i<m;i++){ for (j=0;j<n;j++){ // цикл по блоку // а теперь сдвиг по кругу - временная переменная x x = a [i][j]; // сохраняем (1,1) a [i] [j] = a [i+m] [j]; // (2,1) -> (1,1) a [i+m] [j] = a [i+m] [j+n]; // (2,2) -> (2,1) a [i+m] [j+n] = a [i] [j+n]; // (1,2) -> (2,2) a [i] [j+n] =x; // (1,1) -> (1,2) } Ошибку выдает 10,11 строка |