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

Поменять знак всех локальных максимумов данной матрицы на противоположный - C++

Восстановить пароль Регистрация
 
Janat
0 / 0 / 0
Регистрация: 20.03.2012
Сообщений: 17
03.04.2012, 19:48     Поменять знак всех локальных максимумов данной матрицы на противоположный #1
Matrix75. Дана матрица размера M × N. Элемент матрицы называется ее ло-кальным максимумом, если он больше всех окружающих его элементов. Поменять знак всех локальных максимумов данной матрицы на противо-положный. При решении допускается использовать вспомогательную мат-рицу.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2012, 19:48     Поменять знак всех локальных максимумов данной матрицы на противоположный
Посмотрите здесь:

число локальных максимумов C++
C++ Поменять знак всех локальных максимумов данной матрицы на противоположный.
C++ Найти "max" среди всех локальных минимумов данной матрицы
C++ Найти минимальный из локальных максимумов массива
C++ заменить знак на противоположный
Создать файл целых чисел, содержащий номера всех локальных максимумов исходного файла в порядке возрастания C++
При нахождении количества локальных максимумов в последовательности for_each возвращает ноль C++
C++ В массиве найти и напечатать номера (индексы) локальных максимумов (Прокомментировать код)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bellinger
Сообщений: n/a
03.04.2012, 21:54     Поменять знак всех локальных максимумов данной матрицы на противоположный #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
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
81
82
83
84
85
86
87
88
89
90
91
#include <iostream>
#include <iomanip>
#include <stdlib.h>
 
 
using namespace std;
 
const int M = 6, N = 9, A = -24, B = 30;
 
 
void Form_Matrix(int x[][N], int m = M, int a = A, int b = B);
void Show_Matrix(int x[][N], int y[][N], int M);
void Local_Max(int x[][N], int y[][N], int M);
void Swap_Sign(int x[][N], int y[][N], int M);
 
int main(){
 
    int x[M][N];//основная матрица
    int y[M][N] = {0};//вспомогательная матрица
 
 
    srand (time(NULL));
 
    Form_Matrix(x);
 
    Local_Max(x,y,M);
    cout << "Первоначальная матрица: \n\n";
    Show_Matrix(x,y,M);
 
 
    Swap_Sign(x,y,M);
 
    cout << "\n\n\nИзменённая матрица: \n\n";
    Show_Matrix(x,y,M);
 
 
}//main
 
void Form_Matrix(int x[][N], int m, int a, int b){
 
    for (int i=0;i<M;i++){
        for (int j=0;j<N;j++){
            x[i][j] = a + rand()%(b - a + 1);
 
        }//for j
 
    }//for i
 
}//Form_Matrix
 
void Show_Matrix(int x[][N], int y[][N], int M){
 
    for (int i=0;i<M;i++){
        for (int j=0;j<N;j++){
            cout << setw(5) << x[i][j];
 
        }//for j
      cout << "\n";
 
    }//for i
 
}//Show_Matrix
 
void Local_Max(int x[][N], int y[][N], int M){
 
  for (int i=0;i<M;i++){
      for (int j=0;j<N;j++){
 
          if ( x[i][j] > x[i][j - 1] && x[i][j] > x[i][j + 1])
            y[i][j] = x[i][j];
 
      }//for j
 
  }//for i
 
}//Local_Max
 
void Swap_Sign(int x[][N], int y[][N], int M){
 
    for (int i=0;i<M;i++){
        for (int j=0;j<N;j++){
 
            if (x[i][j] == y[i][j] && y[i][j] != 0)
              x[i][j] *= -1;
              y[i][j] *= -1;
 
        }//for j
 
    }//for i
 
}//Swap_Sign

На будущее выкладывай хоть немного исходников, даже самую малость, чтобы было видно что ты пытался.
Yandex
Объявления
03.04.2012, 21:54     Поменять знак всех локальных максимумов данной матрицы на противоположный
Ответ Создать тему
Опции темы

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