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

Найти "max" среди всех локальных минимумов данной матрицы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перегрузка функций http://www.cyberforum.ru/cpp-beginners/thread406439.html
Помогите пж с задачкой на С++: Определить функцию Search(), осуществляющую поиск в массиве максимального элемента. . Перегрузить функцию Search() для поиска n-ого максимального элемента.
C++ Работа с массивами Помогите плиз написать программу на С Задача: Задан двухмерный массив действительных чисел (квадратная матрица А размером NxN (6<=N<=10)), который содержит в себе действительные элементы. Входные данные задать самостоятельно Задание: Получить новую матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент. http://www.cyberforum.ru/cpp-beginners/thread406428.html
C++ Сравнение строк (с игнорированием множественных пробелов)
Помогите плиз написать функцию и саму программу на С Задание: Функция WordCmp(s1,s2) Назначение: сравнение строк (с игнорированием множественных пробелов).
C++ коротчайший путь
задается массив NxN нужно найти коротчайший путь от позиции 1х1 до NxN и обозначить путь символом # а все остальное символов - .коротчайший путь считается тот ,сумма чисел которых минимальна и двигаться можно только вправо и вниз . пример вводим вывод 3 943 #-- 216 ### 091 --#
C++ В массиве A=(a1, а2, ..., аn) удалить последнюю группу положительных элементов. http://www.cyberforum.ru/cpp-beginners/thread406405.html
В массиве A=(a1, а2, ..., аn) удалить последнюю группу положительных элементов. Группой называется подряд идущие элементы одного знака, число которых больше или равно 2.Создавайте темы с осмысленными и понятными названиями - это серьезно повышает шансы, что на ваш вопрос ответят.Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п.Как можно более полно...
C++ Из класса в класс-шаблон Здравствуйте. Есть класс: class Bit_Indic { char indic; public: Bit_Indic (char _one, char _two, char _three, char _four, char _five, char _six, char _seven, char _eight) { indic = _one; indic = _two; indic = _three; подробнее

Показать сообщение отдельно
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
14.12.2011, 11:02     Найти "max" среди всех локальных минимумов данной матрицы
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
class ivan
{
    private:
        int N, M;
        int **matrix;
        int max;
 
    public:
 
        typedef int *intptr;
 
        void constructor( int **ar, int n, int m )
        {
            matrix = ar;
            N = n;
            M = m;
            max = 0x8000000;
        }
 
        void set ()
        {
            matrix = new intptr [ N ];
            for ( int i = 0; i < M; ++i )
                matrix[ i ] = new int[ M ];
        }
 
        void init()
        {
            ivan::set();
            for ( int i = 0; i < N; ++i )
                for ( int j = 0; j < M; ++j )
                    std::cin >> matrix[ i ][ j ];
        }
 
        void init(int begin, int end)
        {
            ivan::set();
            for ( int i = 0; i < N; ++i )
                for ( int j = 0; j < M; ++j )
                    matrix[ i ][ j ] = ( rand() % (end - begin) ) + begin;
        }
 
        void free_matrix()
        {
            for ( int i = 0; i < N; ++i )
                delete [] matrix[ i ];
            delete [] matrix;
        }
 
        void print_matrix()
        {
            for ( int i = 0; i < N; ++i )
            {
                for ( int j = 0; j < M; ++j )
                    std::cout << std::setw(3) << matrix[ i ][ j ];
                std::cout << std::endl;
            }
        }
 
        int find_min ( int i)
        {
            int min = matrix[ i ][ 0 ];
            int n;
 
            for ( int j = 0; j < M; ++j )
                if ( min >= matrix[ i ][ j ] )
                {
                    min = matrix[ i ][ j ];
                    n = j;
                }
            for ( int j = 0; j < M; ++j )
                if ( ( min == matrix[ i ][ j ] ) && ( j != n ) )
                {
                    std::cout << "в строке " << i + 1 << " минимум не является строгим " << std::endl;
                    return (0x80000000);
                }
            return min;
        }
 
        void find_num ()
        {
            int num = ivan::find_min(0);
            int t;
            for ( int i = 0; i < N; ++i )
            {
                t = ivan::find_min( i );
                if ( num <  t)
                    num = t;
            }
            ivan::max = num;
        }
 
        void give_num ()
        {
            if ( max ^ 0x80000000 )
                std::cout << "искомое число " << ivan::max << " ";
            else
                std::cout << "строгих минимумов с троках матрицы нет "<< std::endl;
        }
};
 
 
int main()
{
    ivan objct;
    int **array, n = 5, m = 5, num;
    std::srand(std::time(0));
    objct.constructor(array, n, m);
    objct.init(10, 53);
    objct.print_matrix();
    std::cout << std::endl;
    objct.find_num();
    objct.give_num();
    objct.free_matrix();
 
    return 0;
}
Добавлено через 8 часов 43 минуты
гляньте косяки, что тут не так с высоты ооп?
 
Текущее время: 10:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru