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

с++функции - C++

Восстановить пароль Регистрация
 
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
22.06.2010, 17:34     с++функции #1
Помогите пожалуйста решить задачку,каким полегче способом.
Составить функции определения минимального и максимального элементов в двумерном массиве. Используя их, найти минимум среди максимальных элементов строк матрицы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2010, 17:34     с++функции
Посмотрите здесь:

C++ Как из обыной функции вызвать функции член класса?
Dызовом родовой функции! Нужно передать массив в качестве аргумента функции через указатель." C++
ввод данных в функции конструктора и использование их в перегруженой функции C++
C++ Заданы три функции. Определить, являются ли эти функции четными или нечетными
C++ Получить указатель из функции и использовать его в другой функции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
manido
1 / 1 / 0
Регистрация: 22.06.2010
Сообщений: 6
22.06.2010, 17:47     с++функции #2
Легче всего отсортировать пузырьком строки по возрастанию, потом отсортировать первый и последний столбец. В результате верхний левый элемент - минимальный, нижний правый - максимальный, верхний правый - минимальный среди максимальных элементров строк.

В случае большой матрицы это не очень быстрый способ, но в реализации самый простой всегда.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
22.06.2010, 18:23     с++функции #3
Цитата Сообщение от снег Посмотреть сообщение
решить задачку,каким полегче способом.
Да не вопрос!
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
#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
#include <cstdlib>
#include <ctime>
 
int rand_num() { return rand() % 100; }
 
int main(){
    int rows, columns, ** matrix;
    std::cout << "Rows: ";
    std::cin >> rows;
    std::cout << "Columns: ";
    std::cin >> columns;
 
    matrix = new int* [ rows ];
    for ( int i = 0; i < rows; ++i ){
        matrix[i] = new int [ columns ];
        std::generate_n(matrix[i], columns, rand_num);
    }
 
    std::vector<int> min_elements, max_elements;
    for ( int i = 0; i < rows; ++i ){
        min_elements.push_back(*std::min_element(matrix[i], matrix[i] + columns));
        max_elements.push_back(*std::max_element(matrix[i], matrix[i] + columns));
    }
 
    std::cout << "Matrix:" << std::endl;
    for ( int i = 0; i < rows; ++i ){
        for ( int j = 0; j < columns; ++j )
            std::cout << std::right << std::setfill('0') << std::setw(2) << matrix[i][j] << ' ';
        std::cout << "MIN: " << min_elements[i] << " MAX: " << max_elements[i] << std::endl;
    }
 
    std::cout << "Minimum from max elements: " << *std::min_element(max_elements.begin(), max_elements.end()) << std::endl;
    std::cout << "Maximum from min elements: " << *std::max_element(min_elements.begin(), min_elements.end()) << std::endl;
 
    for ( int i = 0; i < rows; ++i )
        delete [] matrix[i];
    delete [] matrix;
 
    return 0;
}
JamesBlack
 Аватар для JamesBlack
36 / 36 / 3
Регистрация: 28.07.2009
Сообщений: 144
22.06.2010, 18:35     с++функции #4
Цитата Сообщение от manido Посмотреть сообщение
В случае большой матрицы это не очень быстрый способ, но в реализации самый простой всегда
Интересно, когда будут задачи на графы, ты тоже будешь обходить методом наименьшего сопротивления, перебирая все варианты?
При написании программы старайся ее максимально оптимизировать, даже немного в урон времени написания. Конечно, в разумных пределах.
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
22.06.2010, 20:31  [ТС]     с++функции #5
Большое всем СПАСИБО!!!
Yandex
Объявления
22.06.2010, 20:31     с++функции
Ответ Создать тему
Опции темы

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