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

Найти минимальный из элементов ниже главной и выше побочной диагонали и поменять его местами с первым элементом матрицы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описать функции ввода с клавиатуры элементов одномерного массива http://www.cyberforum.ru/cpp-beginners/thread1066058.html
Описать функции ввода с клавиатуры элементов одномерного массива и подсчета произведения элементов массива V , значения которых совпадают с их номерами, например: V=3
C++ Что такое SDK и как с ним работать? 1) что такое вообще SDK для IP камер: что-то вроде получение доступа (полномочий) к настройкам или какое-то ПО для получения этого доступа или что-то другое ? 2) если же это просто доступ к настройкам, то получается программировать надо на уровне протоколов, которые поддерживает камера? т.е. создавать запросы, получать ответы и сами данные и т.д....т.е., например, то, что описано в недрах... http://www.cyberforum.ru/cpp-beginners/thread1066055.html
Удалить из файла все однобуквенные слова и лишние пробелы. Результат записать в файл g C++
Здравствуйте! Возникла такая проблема, никак не могу докопаться до решения... Задание звучит так: " Дан текстовый файл f. Слова в файле разделены одним или группой пробелов. Удалить из файла все однобуквенные слова и лишние пробелы. Результат записать в файл g." Но дело даже не в нём. Насколько я поняла, мне нужно вводить слова в ряд, так как моё задание связано с пробелами между ними, а я...
Отсортировать и вывести по возрастанию решения для квадратных уравнений C++
#include "stdafx.h" #include "math.h" #include <iostream> using namespace std; class N { public: virtual void input ()=0; virtual void output ()=0; virtual float res ()=0;
C++ дописать программу http://www.cyberforum.ru/cpp-beginners/thread1066046.html
#include <cstdlib> #include <iostream> #include <Math.h> using namespace std; int main(int argc, char *argv) { setlocale( LC_ALL,"Russian" ); //=========================================================================//
C++ Логически правильное наследование исключений Как логически правильно наследовать исключения? Пока не сталкивался с необходимостью наследовать исключения, но все же бывает в первый раз, и нужно быть готовым. Я покажу на примере стека что можно было бы отнаследовать, а уж более опытные меня поправят. Самому мне то, что и как я наследую не шибко нравится, ибо как-то глупо и не гибко выходит, но ничего лучше не видел или не правильно понял то,... подробнее

Показать сообщение отдельно
__General__
24 / 24 / 3
Регистрация: 04.01.2014
Сообщений: 91
Завершенные тесты: 2
08.01.2014, 23:17     Найти минимальный из элементов ниже главной и выше побочной диагонали и поменять его местами с первым элементом матрицы
Недавно писал по просьбе на форуме написал программу, которая находит максимальный элемент, лежащий ниже побочной диагонали в произвольной матрице

вот код:

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
#include <iostream>
#include <locale>    //нужно, чтобы подключить русский язык.
#include <iomanip>   //требуется для форматирования вывода (используем манипуляторы left и setw в функции print_matrix(...)).
 
using namespace std;
 
int get_max_el(int **matr, int M, int N);
void print_matrix(int **matr, int M, int N); //удобный вывод матрицы на экран.
 
int main()
{
    locale::global(locale("Russian")); //подключаем русский язык.
 
    int M, N;
    cout <<"Введите размеры матрицы: "; //для того, чтобы в матрице содержались элементы, лежащие ниже побочной диагонали, нужно, чтобы M > 1.
    cin >>M >>N;
 
    //динамически выделяем память под матрицу:
    int **matrix = new int*[M];  
    int i, j;
    for (i = 0; i < M; i++) {
        matrix[i] = new int[N];
    }
 
    cout <<"Введите элементы матрицы:\n"; //вводим матрицу размера MxN.
    for (i = 0; i < M; i++) {
        for (j = 0; j < N; j++) {
            cin >>matrix[i][j];
        }
    }
 
    cout <<"Итак, вы ввели матрицу:\n";
    print_matrix(matrix, M, N);
 
    int max = get_max_el(matrix, M, N);
    cout <<"Максимальный элемент, лежащий ниже побочной диагонали: " <<max <<'\n';
 
    cin.get(); //задержка консольного окна - чтобы не погасло раньше времени.
    cin.get();
 
    //освобождаем память:
    for (i = 0; i < M; i++) {
        delete [] matrix[i];
    }
    delete [] matrix;
 
    return 0;
}
 
int get_max_el(int **matr, int M, int N)   //элементы, лежащие ниже побочной диагонали, удовлетворяют неравенству: i > N-1-j;
{
    int i, j, max = matr[1][N-1];
    for (i = 2; i < M; i++) { 
        for (j = N-1; i > N-1-j; j--) {
            if (matr[i][j] > max) {
                max = matr[i][j];
            }
        }
    }
 
    return max;
}
 
void print_matrix(int **matr, int M, int N) 
{
    int i, j;
    for (i = 0; i < M; i++) {
        for (j = 0; j < N; j++) {
            cout <<left <<setw(5) <<matr[i][j];
        }
        cout <<'\n';
    }
    cout <<'\n';
}

Ваша задачка похоже, а в чем-то даже проще, т к уже задан размер матрицы - 6х6, что позволяет работать со статическим двумерным массивом.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru