Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2020, 12:57   #1
Koven07
Новичок
Джуниор
 
Регистрация: 21.11.2020
Сообщений: 1
По умолчанию Работа с двухмерными массивами (Си)

Есть матрица bytes1, нужно транспонировать её в матрицу blocks1
Код:
int length = 4+1, cols = 3, offset = 2;
bool bytes1[4+1][8] = {
    {0,1,0,0,0,0,0,1},
    {0,1,1,0,1,0,0,0},
    {0,1,1,0,1,1,1,1},
    {0,1,1,0,1,0,1,0},
    {0,0,0,0,0,0,0,0}
};
bool blocks1[offset*8][cols];
 
}
Вот такой выходной результат должен быть.
0 0 0
1 1 1
1 1 1
0 0 0
0 1 1
0 0 1
0 0 1
1 0 1

0 0 0
1 0 0
1 0 0
0 0 0
1 0 0
0 0 0
1 0 0
0 0 0

Пытаюсь сделать так, но не получается
Код:
for(int i=0;i<offset*8;i++){
 
        for(int j=0;j<cols;j++){
            if(i<8){
                blocks[i][j]=bytes[j][i];
            }
            else{
                blocks[i][j]=bytes[rows-cols+j+1][i-8];
            }
        }
 
}
Koven07 вне форума Ответить с цитированием
Старый 21.11.2020, 16:16   #2
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 960
По умолчанию

Koven07, забудь про эти идиотские i и j , назови их человечиьми row и col
припиши им префиксы матриц :
(source==src) src_row,src_col
(destination==dst) dst_row, dst_col

далее будет совсем несложно сделать итерацию по нужным колонкам и строкам нужных матриц
Алексей1153 вне форума Ответить с цитированием
Старый 21.11.2020, 20:26   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Что-то на транспонирование не похоже. Из матрицы 5 на 8 при транспонировании должна получиться матрица 8 на 5. А у вас в результате две матрицы 8 на 3. Откуда лишний столбец? В первом столбце результата опечатка, наверное.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi] Создание приложение для операций с двухмерными матрицами (сложение,вычитание) Maelsk Помощь студентам 1 26.12.2017 09:54
Работа с массивами. Екатерина57 Помощь студентам 57 19.11.2016 22:23
работа с массивами Devil669 Общие вопросы C/C++ 2 03.05.2013 19:54
работа с массивами Андрей.12 Помощь студентам 0 19.10.2009 14:18
Помогите с двухмерными массивами Dimati87 Помощь студентам 2 04.05.2009 11:40