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

Найти максимальный элемент в строке матрицы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Получить квадратную матрицу размерности N http://www.cyberforum.ru/cpp-beginners/thread287781.html
Получить квадратную матрицу размерности N:
C++ Поиск файлов в директории Добрый день. Что прошу: Есть exe, при запуске он должен найти все папки в этой директории и скопировать себя в них. С помощью чего можно осуществить поиск? Как это сделать динамически(копировать без указания пути)? http://www.cyberforum.ru/cpp-beginners/thread287779.html
C++ Перестановка элементов массива
Преобразовать массив таким образом, чтобы в его первой половине располагались элементы, стоящие на четных позициях, а во второй половине - элементы, стоящие в нечетных позициях
Составить программу построения песочных часов C++
Составить программу построения песчаных часов часы я нарисовал но песок не могу.... вот код: #include<iostream.h> #include<conio.h> #include<math.h> #include<stdlib.h> #include<graphics.h> main() {
C++ номер элемента массива, ближайшего к среднему арифметическому его значений http://www.cyberforum.ru/cpp-beginners/thread287774.html
В одномерном массиве, состоящий из N целых элементов, вычислить: - номер элемента массива, ближайшего к среднему арифметическому его значений; - сумма элементов массива, расположенных между первым отрицательным и вторым положительным элементами.
C++ строки. расшифровка текста Задача: В записке слова зашифрованы — каждое из них записано наоборот. Расшифровать сообщение. Написал код не знаю как исправить ошибки помогите пожалуйста код: #include <stdio.h> void main() { const raz = {' ','.',',',';','!'}; //разделители слов char s, s2, slo; // начальная, конечная, временная строка int i, len, k;// len - длина строки подробнее

Показать сообщение отдельно
Visary_Master
-154 / 16 / 4
Регистрация: 01.12.2010
Сообщений: 297
03.05.2011, 21:33  [ТС]     Найти максимальный элемент в строке матрицы
Нужно решить такую задачу. Немного я не правильно разъяснил. Потому что уже долго сижу и голова не варит. Я решаю такую задачу:
Задан двумерный массив N x N. Разрешается произвольно переставлять элементы внутри любого столбца. Про-верить, можно ли выполнив конечное количество перестановок в столбцах, расположить на побочной диагональ элементы так, чтобы он возрастали.

Я думаю что на правильном пути, надо еще реализовать перестановку элементов в столбце. И алгоритм будет примерно такой:
искать надо будет по столбцам...тогда... и еще надо... я запутался.

Вот весь код программы.
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
#include <iostream>
#include <ctime>
using namespace std;
 
const int N = 3;
 
int findMaxElement(int mass[N][N], int);
int main() 
{       
    int mass[N][N];
    srand(time(NULL));
    for (int i=0; i<N; i++)
    {
        for(int j=0; j<N; j++)
        {
            mass[i][j] = rand() % 100;
        }
    }
    for (int i=0; i<N; i++)
    {
        for(int j=0; j<N; j++)
        {
            cout << mass[i][j] << " ";
        }
        cout << endl;
    }
    cout << endl;
    
    int maxElement = 0;
    int maxi = 0; 
    int maxj = 0;
    int prev_max=99999;
 
    maxElement = mass[0][0];
    
    for (int i=0; i<N; i++)
    {   
        for (int j=0; j<N; j++)
        {
            if ((mass[j][i] >= maxElement) && (mass[j][i] <= prev_max))
            {   
                maxElement = mass[i][j];
                maxi = i;
                maxj = j;
            }
        }
        // для проверки
        cout << maxElement << endl;
        cout << maxi << " " << maxj << endl;
        cout << maxElement << endl;
 
        int temp = mass[maxi][maxj];
        mass[maxi][maxj] = mass[i][N - 1 - i];
        mass[i][N - 1 - i] = temp;
 
        prev_max=maxElement;
        //cout << prev_max; // для проверки
        maxElement = 0;
        
    }
    cout << endl;
    for (int i=0; i<N; i++)
    {
        for(int j=0; j<N; j++)
        {
            cout << mass[i][j] << " ";
        }
        cout << endl;
    }
    cout << endl;
    return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от neske Посмотреть сообщение
mimicria, я ваш код вообще разобрать не смог.
C++
1
2
3
4
5
6
7
8
 for (int i = 0; i < Row; i++) {
    int max = MAS[i][0];
    for (int j = 1; j < Column; j++) {
        if ((!i) && (MAS[i][j] > max)) max = MAS[i][j];
        if ((i) && (MAS[i][j] > max) && (MAS[i][j] <= MAS[i][Column - 1])) max = MAS[i][j];
    }
    std::cout << i << " max: " << max;
}
Мой код максимально прост.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru