С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Функция транспонирования динамической матрицы N*M - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Загрузка данных из текстового документа http://www.cyberforum.ru/cpp-beginners/thread1119262.html
Здравствуйте, я столкнулся со следующей проблемой: Мне нужно загрузить данные из текстового файла в переменные типа int, float и bool. Проблема в том, что каждое новое число находится в новой строке...
C++ Два таймера одновременно Есть функция таймер: void timer(int s,int m,int h){ cout.fill('0'); while(true){ system("cls"); cout.width(2); cout<<h<<':'; cout.width(2); cout<<m<<':'; http://www.cyberforum.ru/cpp-beginners/thread1119250.html
Файловый ввод/вывод. Во всех словах строки переставить все входящие буквы «а» в начало слова, а буквы «я» – в конец C++
Здравствуйте! Помогите, пожалуйста, составить программу, которая считывает из текстового файла input.txt строку символов S.Во всех словах считанной строки S нужно переставить все входящие буквы «а» в...
C++ Разработать программу, меню которой позволяет выполнять следующие функции
Разработать программу, меню которой позволяет выполнять следующие функции. 1. Ввод радиуса шара 2. Вывод площади поверхности шара 3. Вывод объема шара. 4. Выход из программы. блин, не могу...
C++ Написать функцию, находящую в заданной строке количество подстрок, состоящих из цифр http://www.cyberforum.ru/cpp-beginners/thread1119241.html
Помагите пожалуйста! задание по программир. Напишите функцию Int kol(char*s) которая находит в заданной строке количество подстрок, состоящих из цифр. Предложите систему тестов. Скорее всего это...
C++ Сумма положительных Нужно чтобы выводило сумму положительных элементов вектора // proekt.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <conio.h> #include <stdio.h>... подробнее

Показать сообщение отдельно
_include
Студент
52 / 52 / 12
Регистрация: 17.09.2012
Сообщений: 291
Записей в блоге: 2
Завершенные тесты: 1
16.03.2014, 13:17
Цитата Сообщение от Renevity Посмотреть сообщение
С матрицей N*N всё просто. Как преобразовать нужную, т.е чтобы работало с N*M, я не пойму.
Добавлено через 6 часов 34 минуты
Тишина, потому что трудновато или наоборот слишком просто? Подкиньте хотя бы идею, что нужно примерно добавить к алгоритму транспонирования? Чему нужно уделить внимание?
Добавлено через 17 часов 35 минут
Ок. Спасибо.
Я же не живу в компьютере, правильно?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <iostream>
#include <iomanip>
 
//----------------
 
int** new2DArray(const int m, const int n)
{
   int** arr = new int*[m];
   for(int i = 0; i < m; ++i)
      arr[i] = new int[n];
   return arr;
}
 
//---------------
void delete2DArray(int** arr, const int m)
{
   for(int i = 0; i < m; ++i)
      delete[] arr[i];
   delete[] arr;
}
 
//--------------- 
 
int** newTransposeMatrix(int** matrix, const int m, const int n) 
{
   int** res = new2DArray(n, m);
   
   for(int i = 0; i < m; ++i)    
      for(int j = 0; j < n; ++j)        
     res[j][i] = matrix[i][j];            
   
   return res;
}
 
//----------------
void print2DArray(int** arr, const int m, const int n)
{
   for(int i = 0; i < m; ++i)
   {
      for(int j = 0; j < n; ++j)
     std::cout << std::setw(4) << arr[i][j];
      std::cout << '\n';
   }   
}
//---------------
 
int main()
{
   // вводим размеры матрицы
   std::cout << "Input m: ";
   int m;
   std::cin >> m;
   
   std::cout << "Input n: ";
   int n;
   std::cin >> n;
   
   // создаём новую матрицу MxN
   int** mtrx = new2DArray(m, n);
 
   // заполняем 
   for(int i = 0; i < m; ++i)   
      for(int j = 0; j < n; ++j)      
     mtrx[i][j] = j;
              
   // выводим
   std::cout << "Matrix\n";
   print2DArray(mtrx, m, n);
 
   // получаем транспонированную матрицу и выводим её на экран
   int** tmtrx = newTransposeMatrix(mtrx, m, n);
   std::cout << "\nTranspose matrix\n";   
   print2DArray(tmtrx, n, m);
 
   // освобождаем выделенную память
   delete2DArray(mtrx, m);
   delete2DArray(tmtrx, n);
 
   return 0;
}
Прежде чем кричать, поискали бы... Код взят отсюда:
Функция транспонирования матрицы
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.