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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 33, средняя оценка - 4.61
Saitooo
0 / 0 / 0
Регистрация: 11.01.2009
Сообщений: 40
14.01.2009, 09:49     Найти максимальный по модулю элемент матрицы #1
Задана матрица размером п х т. Найти максимальный по модулю элемент матрицы. Переставить строки и столбцы матрицы таким образом, чтобы максимальный по модулю элемент был расположен на пересечении k-й строки и fc-го столбца.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2009, 09:49     Найти максимальный по модулю элемент матрицы
Посмотрите здесь:

Найти максимальный по модулю элемент ... C++
C++ Найти максимальный по модулю элемент матрицы..
C++ В массиве X(N) найти сумму абсолютных значений элементов и максимальный элемент по модулю
Найти в массиве максимальный по модулю элемент. C++
C++ Найти максимальный элемент в каждой строке двумерного массива по модулю, и сложить их
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
le nom
4 / 4 / 0
Регистрация: 03.01.2009
Сообщений: 50
14.01.2009, 12:51     Найти максимальный по модулю элемент матрицы #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
void main()
{
    const int n = 10;           // Размерность массива
    float a[n];                 // Объявление массива
    for(int i = 0; i < n; i++)
    {
        cout << "Input the a[" << i << "] element:t";
        cin >> a[i];            // Ввод значений массива
    }
    float Min, Max;             // Минимум и максимум
    Min = Max = a[0];           // инициализируются первым элементом массива
                               
    for(i = 1; i < n; i++)      // Сравнение с текущим элементом
        if(a[i] > Max)
            Max = a[i];         // Текущий максимальный элемент
        else if(a[i] < Min)
            Min = a[i];         // Текущий минимальный элемент
    
    cout << endl;
    for(i = 0; i < n; i++) 
        cout << a[i] << "t";   // Вывод исходного массива
    cout << " Max element " << Max << endl;
                                // Вывод результатов поиска
}
Добавлено через 4 минуты 4 секунды
как начальный вариант
Splitter
 Аватар для Splitter
201 / 143 / 5
Регистрация: 13.01.2009
Сообщений: 554
14.01.2009, 13:22     Найти максимальный по модулю элемент матрицы #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
void main()
{
    const int n = 10;  
    const int t = 10;          // Размерность массива
    float a[n,t];                 // Объявление массива
    for(int i = 0; i < n; i++)
         for (int j = 0; j < t; j++)
    {
        cout << "Input the a[" << i <<", "<< j << "] element:t";
        cin >> a[i,j];            // Ввод значений массива
    }
    float Min, Max;             // Минимум и максимум
    Min = Max = a[0];           // инициализируются первым элементом массива
    int x,y;
    x=y=0;                           
    for(i = 1; i < n; i++) 
     // Сравнение с текущим элементом
        if(a[i] > a[x,y])
            {
              x=i;
              y=j;
             }         // Текущий максимальный элемент
int k,f;
k=f=1; //k,f -строка и столбец куда будут переставляться строка и столбец с  
          //максимальным элементом
float tmp1[n+t];
for (int i = 0; i < n; i++) {tmp[i]=a[i,y]; a[i,y]=a[i,f]; a[i,f]=tmp[i]}
for (int i = 0; i < t; i++) {tmp[i]=a[x,i]; a[x,i]=a[k,i]; a[k,i]=tmp[i]}    
    cout << endl;
    for(i = 0; i < n; i++) 
           for (int j = 0; j < t; j++)
        cout << a[i,j] << "t";   // Вывод исходного массива
    cout << " Max element " << Max << endl;
                                // Вывод результатов поиска
}
не проверял, но вроде должно работать, это я дополнил предыдущее, чтобы получилось как в задании написано...
MegaRoks
 Аватар для MegaRoks
1 / 1 / 0
Регистрация: 25.12.2014
Сообщений: 133
22.04.2016, 15:40     Найти максимальный по модулю элемент матрицы #4
Помогите устранить ошибки

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
#include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
int i;
 
int **mas_1;
int **mas_2;
 
void create_mas(int m_str, int m_stb, int n_str, int n_stb)
    {
        mas_1 = new int*[m_str];
        mas_2 = new int*[n_str];
        for (int i = 0; i<m_str; i++)
            {
                mas_1[i] = new int[m_stb];
            }
        for (int i = 0; i<n_str; i++)
            {
                mas_2[i] = new int[n_stb];
            }
    }
 
void fill(int m_str, int m_stb, int n_str, int n_stb)
    {
 
        puts("Первая матрица");
        for (int i = 0; i<m_str; i++)
        {
            for (int j = 0; j<m_stb; j++)
            {
                mas_1[i][j] = rand() % 10;
                cout << mas_1[i][j];
                printf("\t");
            }
            puts("\n");
        }
 
        puts("Вторая матрица");
        for (int i = 0; i<n_str; i++)
        {
            for (int j = 0; j<n_stb; j++)
            {
                mas_2[i][j] = rand() % 10;
                cout << mas_2[i][j];
                printf("\t");
            }
            puts("\n");
        }
    }
 
void multiply(int m_str, int m_stb, int n_str, int n_stb)
    {
        int Min, Max, n;             // Минимум и максимум
        Min = Max = 0;           // инициализируются первым элементом массива
 
        for (i = 1; i < n; i++)      // Сравнение с текущим элементом
            if (mas_1[i] > Max)
                Max = mas_1[i];         // Текущий максимальный элемент
            else if (mas_1[i] < Min)
                Min = mas_1[i];         // Текущий минимальный элемент
 
        cout << endl;
        for (i = 0; i < n; i++)
            cout << mas_1[i] << "t";   // Вывод исходного массива
        cout << " Max element " << Max << endl;
        // Вывод результатов поиска
        for (i = 0; i < n; i++)
            cout << mas_1[i] << "t";   // Вывод исходного массива
        cout << " Min element " << Min << endl;
        // Вывод результатов поиска
 
        for (i = 1; i < n; i++)      // Сравнение с текущим элементом
            if (mas_2[i] > Max)
                Max = mas_2[i];         // Текущий максимальный элемент
            else if (mas_2[i] < Min)
                Min = mas_2[i];         // Текущий минимальный элемент
 
        cout << endl;
        for (i = 0; i < n; i++)
            cout << mas_2[i] << "t";   // Вывод исходного массива
        cout << " Max element " << Max << endl;
        // Вывод результатов поиска
        for (i = 0; i < n; i++)
            cout << mas_2[i] << "t";   // Вывод исходного массива
        cout << " Min element " << Min << endl;
        // Вывод результатов поиска
    }
 
int main()
    {
        setlocale(LC_ALL, "rus");
 
        int m1, m2;
        puts("Кол-во строк и столбцов первой матрицы");
        scanf_s("%d", &m1);
        scanf_s("%d", &m2);
 
        //Элементы второй матрицы
        puts("Кол-во строк и столбцов второй матрицы");
        int n1, n2;
        scanf_s("%d", &n1);
        scanf_s("%d", &n2);
 
 
        create_mas(m1, m2, n1, n2);
        fill(m1, m2, n1, n2);
        multiply(m1, m2, n1, n2);
 
        _getch();
        return 0;
    }
Yandex
Объявления
22.04.2016, 15:40     Найти максимальный по модулю элемент матрицы
Ответ Создать тему
Опции темы

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