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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
J_Max
Заблокирован
#1

Переворот матрицы~изображения. - C++

22.02.2010, 12:32. Просмотров 674. Ответов 2
Метки нет (Все метки)

Дана матрица HxW H – произвольное W – произвольное
Реализовать функцию разворота матрицы “вверх ногами” или проще для понимания переворот изображения,
Что это значит.
Была матрица:

1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4

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

Выручайте заранее, благодарю, можете делать на C++.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2010, 12:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переворот матрицы~изображения. (C++):

Переворот масива - C++
Здравствуйте. Помагите пожалучто, у меня как то криво масив переворачиваетса... #include <iostream> #include <ctime> using namespace...

Переворот строки - C++
Почему при использовании указателя ошибка, а при использование массива всё нормально? void RevStr(char *str){ char *start,*end; ...

Переворот слов - C++
Дали такие задания: Задание 1 В строке, содержащей несколько слов, разделенных пробелом, перевернуть каждое слово. Входные...

Переворот массива - C++
Как переворачивают не обычных массив, а двухмерный ? К примеру 4x4 ?

Двойной переворот - C++
помогите переписать на c++, это Delphi. {$APPTYPE CONSOLE} uses SysUtils; var x:array of word; n,i,a,b,c,d:word;

Переворот строки - C++
Реализуйте класс ReversibleString, хранящий строку и поддерживающий методы Reverse для переворота строки и ToString для получения строки. ...

2
Day
1158 / 963 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
22.02.2010, 13:41 #2
Код
  for(i=0; i<H; i++) {
      for(j=0; j<W; j++) {
          t = a[i][j];
          a[i][j] = a[n-i-1][j] ;
          a[n-1-1] = t;
      }
  }
Это что-то поменяет (не то строки, не то столбцы).
Чтоб поменять другое (не то столбцы, не то строки)
поменяй всюду i <--> j H <--> W
1
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
22.02.2010, 14:24 #3
А если спросят что такое n

Добавлено через 32 минуты
Это ужасно и не эффективно, но зато работает.
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 = 4;
 
int matrix[H][W] = {
    {1,1,1,1},
    {2,2,2,2},
    {3,3,3,3},
    {4,4,4,4}
 
};
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[W]; 
int i,j,p;
for(i=1;i<H;i++){
   for(p=0;p<W;p++)tstr[p]=matrix[i*W+p];
      for(j=i;j>0;j--){ 
          for(p=0;p<W;p++)matrix[j*W+p] = matrix[(j-1)*W+p] ;
    }    
for(p=0;p<W;p++)matrix[j*W+p]=tstr[p];
 
}
 
delete []tstr;
return 0;
}
Добавлено через 6 минут
Может кто-нибудь оптимизирует.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2010, 14:24
Привет! Вот еще темы с ответами:

Переворот слов - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;sstream&gt; int main() { std::string input; std::getline( std::cin,...

Переворот строки - C++
Ребят,у меня есть 2 часа чтоб понять!УМОЛЯЮ, помогите...объясните в этой функции( которая переворачивает строку и читатет ее) строку ...

реверсивный переворот - C++
Создать 2 объекта разработанного класса. Одной из компонент класса является динамическая символьная строка. В результате выполнения...

Переворот массива - C++
Как перевернуть массив на 180 градусов ? Помогите. Сам массив уже есть: #include &lt;iostream&gt; #include &lt;time.h&gt; #include...


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

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

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