Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
lerka1996
2 / 2 / 11
Регистрация: 04.03.2015
Сообщений: 76
#1

Функция транспонирования матрицы - C++

08.10.2015, 18:42. Просмотров 1956. Ответов 2
Метки нет (Все метки)

(другими словами, просто двумерный целочисленный массив) размера rows×cols, и возвращает транспонированную матрицу MT (тоже двумерный целочисленный массив) размера cols×rows. Если в M на пересечении i-ой строки и j-ого столбца стояло число x, то на пересечении j-ой строки и i-ого столбца в матрице MT тоже будет стоять число x, или другими словами MT[j][i]=M[i][j].
http://www.cyberforum.ru/cpp-beginners/thread1517311.html

Обратите внимание, что вам неизвестно, каким именно способом выделялась память для массива M. Выделять память под массив MT можете любым удобным вам способом. Изменять исходную матрицу нельзя.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2015, 18:42
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Функция транспонирования матрицы (C++):

Функция транспонирования матрицы
Здравствуйте! В университете начали изучать подпрограммы, пока не могу толком...

Функция транспонирования квадратной матрицы
написать функцию транспонирвания квадратной матрицы (т.е. поворота исходной...

Функция транспонирования динамической матрицы N*M
Собственно сабж. Если точнее, проблема возникла с не самим алгоритмом...

функция транспонирования
int** transp(int** a, int n, int m) { int i, j; int** arr = new int*;...

Функция транспонирования массива
Написать функцию, которая транспонирует заданный в качестве параметра массив...

2
zss
Модератор
Эксперт С++
6952 / 6514 / 4135
Регистрация: 18.12.2011
Сообщений: 17,179
Завершенные тесты: 1
08.10.2015, 19:46 #2
C++
1
2
3
4
5
6
void Transp(int** a,int** b,int m,int n)
{
    for(int i=0;i<n;i++)
      for(int j=0;j<m;j++)
            b[j][i]=a[i][j];
}
0
ture
528 / 336 / 206
Регистрация: 27.11.2014
Сообщений: 1,043
09.10.2015, 17:46 #3
Лучший ответ Сообщение было отмечено lerka1996 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int ** transpose(const int * const * m, unsigned rows, unsigned cols)
{
    //строи
    int ** mT = new int*[cols];
    *mT = new int[cols*rows];
    for(int i = 1; i < cols; ++i)
        mT[i] = mT[i - 1] + rows;
 
    //заполняем
    for(int i = 0; i < rows; ++i)
        for(int j = 0; j < cols; ++j)
            mT[j][i] = m[i][j];
 
    return mT;
}
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2015, 17:46
Привет! Вот еще темы с решениями:

Неверный результат транспонирования матрицы
Помогите, пожалуйста, разобраться - почему программа выдает в результате 0 1...

Разработать программу транспонирования матрицы
Разработать* программу транспонирования матрицы, размер которой (количество...

функцию для транспонирования матрицы
Как Написать функцию для транспонирования матрицы (меняет местами стоки и...

Выполнить операцию транспонирования прямоугольной матрицы
Выполнить операцию транспонирования прямоугольной матрицы A (m, n), m не равно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru