Форум программистов, компьютерный форум CyberForum.ru

Боковой разворот матрицы - C++

Восстановить пароль Регистрация
 
J_Max
Заблокирован
22.02.2010, 12:36     Боковой разворот матрицы #1
Дана матрица HxW H – произвольное W – произвольное
Задача: поменять столбцы в обратном порядке. Это действие оформить в виде функции.

Было так:
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4

Стало так:
4 3 2 1
4 3 2 1
4 3 2 1
4 3 2 1

Можно сказать что это переворот изображения слева на право, или справа налево, я точно не знаю, как правильно сказать.
Выручайте заранее благодарю, можете делать на C++.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2010, 12:36     Боковой разворот матрицы
Посмотрите здесь:

C++ Разворот текста
Определить произведение элементов боковой диагонали матрицы, какие меньшие 9 C++
C++ Рандомное заполнение и разворот списка
C++ Из двоичной в десятичную+разворот
C++ Разворот матрицы на 90 градусов
C++ Разворот порядка битов в байте
Найти наибольший элемент среди элементов матрицы, расположенных над главной диагональю и под боковой диагональю C++
Зеркальный разворот строк матрицы C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
22.02.2010, 14:31     Боковой разворот матрицы #2
За качество и скорость не ручаюсь.
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
#include <iostream.h>
#include <stdlib.h>
long transform(int *matrix ,const int H,const int W); 
int main(){
const int H = 4;
const int W = 3;
 
int matrix[H][W] = {
    {1,2,3},
    {1,2,3},
    {1,2,3},
    {1,2,3}
 
};
transform(&matrix[0][0],H,W);
for(int i=0 ;i<H; i++){
    for(int j=0;j<W;j++){
cout<<' '<<matrix[i][j];
    }
cout<<'\n';
}
 
 
return 0;
}
 
long transform(int *matrix ,const int H,const int W){
//ГЌГ*äî ïðèìåГ*ГЁГІГј ГЅГІГ® Г*ëãîðèòì ïðèìåГ*ГЁГІГј Гў ñîîòâåòñâòèè Г± êîëè÷åñòâîì ñòðîê
int * tstr = new int[H]; 
int i,j,p;
for(i=1;i<W;i++){
   for(p=0;p<H;p++)tstr[p]=matrix[p*W+i];
      for(j=i;j>0;j--){ 
          for(p=0;p<H;p++)matrix[p*W+j] = matrix[p*W+(j-1)] ;
    }    
for(p=0;p<H;p++)matrix[p*W+j]=tstr[p];
 
}
 
delete []tstr;
return 0;
}
J_Max
Заблокирован
22.02.2010, 14:36  [ТС]     Боковой разворот матрицы #3
За качество и скорость не ручаюсь.
Главное что бы работало, мне срочно надо было.
Yandex
Объявления
22.02.2010, 14:36     Боковой разворот матрицы
Ответ Создать тему
Опции темы

Текущее время: 17:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru