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

В квадратной матрице X(n,n) найти максимальный и минимальный элементы. - C++

Восстановить пароль Регистрация
 
Yacov
 Аватар для Yacov
0 / 0 / 0
Регистрация: 13.03.2012
Сообщений: 22
13.03.2012, 16:55     В квадратной матрице X(n,n) найти максимальный и минимальный элементы. #1
В квадратной матрице X(n,n) найти максимальный и минимальный элементы. Поэлементно поменять местами строку с максимальным элементом со столбцом с минимальным элементом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2012, 16:55     В квадратной матрице X(n,n) найти максимальный и минимальный элементы.
Посмотрите здесь:

C++ В вещественной матрице размером NxN найти максимальный и минимальный элементы.
C++ В матрице поменять местами в каждом столбце минимальный и максимальный элементы
В квадратной матрице найти максимальный элемент C++
C++ Массивы. Найти в матрице максимальный и минимальный элементы, поменять местами строки, в которых они расположены
C++ Найти на главной диагонали квадратной матрицы максимальный и минимальный элементы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lenochex
 Аватар для Lenochex
5 / 5 / 0
Регистрация: 16.03.2012
Сообщений: 15
20.03.2012, 16:21     В квадратной матрице X(n,n) найти максимальный и минимальный элементы. #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
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
#include<iostream>
 
using namespace std;
 
int main()
{
 int n,k,l;
        int i,j;
        cout<<"Vvedite razmer matricy:";
        cin>>n;
        double **a;
        a=new double* [n];
        double *g;
        g=new double [n];
        double *g1;
        g1=new double [n];
 
 
           for(i=0;i<n;i++)
           {
       a[i]=new double [n];
                for(j=0;j<n;j++)
               {
                cout<<"Vvedite element a["<<i+1<<","<<j+1<<"]: ";
                cin>>a[i][j];
                }
           }
 
        for(i=0;i<n;i++)
                {
                for(j=0;j<n;j++)
                        cout<<" "<<a[i][j];
                        cout<<std::endl;
                }
                double max=a[0][0];
                                k=0;
                                l=0;
                for(i=0;i<n;i++)
                {
                for(j=0;j<n;j++)
                  if (a[i][j]>=max)
                                  {
                                      max=a[i][j];
                                      k=i;
                                      l=j;
                                  }
                                      
        }
                cout<<"Max a["<<k+1<<","<<l+1<<"]="<<max;
                                double min=a[0][0];
                                int k1;
                                int l1;
                                k1=0;
                                l1=0;
                for(i=0;i<n;i++)
                {
                for(j=0;j<n;j++)
                  if (a[i][j]<min)
                                  {
                                          min=a[i][j];
                                          k1=i;
                                          l1=j;
                                  }
 
 
                }
                cout<<"\nMin a["<<k1+1<<","<<l1+1<<"]="<<min;
 
 
                for(i=0;i<n;++i)
                {
                     g[i]=a[i][l1];
 
                 }
                for(j=0;j<n;++j) 
                {
                    g1[j]=a[k][j];
            
                }
                for(i=0;i<n;++i)
                {
                     a[i][l1]=g1[i];
 
                 }
                for(j=0;j<n;++j) 
                {
                    a[k][j]=g[j];
            
                }
 
                cout<<"\n";
 
     
        for(i=0;i<n;++i)
                {
                for(j=0;j<n;++j)
                        cout<<" "<<a[i][j];
                        cout<<std::endl;
                }
 
 
    return 0;
}
Yacov, тут возникает вопрос, к примеру у нас матрица:
1 2 5
3 8 7
9 -1 2
Меняем строку с максимальным элементом со столбцом с минимальным элементом, получаем:
1 9 5
3 -1 7
2 8 -1
Т. е. на пересечении 3 строки и 2 столбца один элемент накладывается на другой.
Я не знаю что с этим делать, как надо..
Yacov
 Аватар для Yacov
0 / 0 / 0
Регистрация: 13.03.2012
Сообщений: 22
20.03.2012, 17:23  [ТС]     В квадратной матрице X(n,n) найти максимальный и минимальный элементы. #3
Цитата Сообщение от Lenochex Посмотреть сообщение
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
#include<iostream>
 
using namespace std;
 
int main()
{
 int n,k,l;
        int i,j;
        cout<<"Vvedite razmer matricy:";
        cin>>n;
        double **a;
        a=new double* [n];
        double *g;
        g=new double [n];
        double *g1;
        g1=new double [n];
 
 
           for(i=0;i<n;i++)
           {
       a[i]=new double [n];
                for(j=0;j<n;j++)
               {
                cout<<"Vvedite element a["<<i+1<<","<<j+1<<"]: ";
                cin>>a[i][j];
                }
           }
 
        for(i=0;i<n;i++)
                {
                for(j=0;j<n;j++)
                        cout<<" "<<a[i][j];
                        cout<<std::endl;
                }
                double max=a[0][0];
                                k=0;
                                l=0;
                for(i=0;i<n;i++)
                {
                for(j=0;j<n;j++)
                  if (a[i][j]>=max)
                                  {
                                      max=a[i][j];
                                      k=i;
                                      l=j;
                                  }
                                      
        }
                cout<<"Max a["<<k+1<<","<<l+1<<"]="<<max;
                                double min=a[0][0];
                                int k1;
                                int l1;
                                k1=0;
                                l1=0;
                for(i=0;i<n;i++)
                {
                for(j=0;j<n;j++)
                  if (a[i][j]<min)
                                  {
                                          min=a[i][j];
                                          k1=i;
                                          l1=j;
                                  }
 
 
                }
                cout<<"\nMin a["<<k1+1<<","<<l1+1<<"]="<<min;
 
 
                for(i=0;i<n;++i)
                {
                     g[i]=a[i][l1];
 
                 }
                for(j=0;j<n;++j) 
                {
                    g1[j]=a[k][j];
            
                }
                for(i=0;i<n;++i)
                {
                     a[i][l1]=g1[i];
 
                 }
                for(j=0;j<n;++j) 
                {
                    a[k][j]=g[j];
            
                }
 
                cout<<"\n";
 
     
        for(i=0;i<n;++i)
                {
                for(j=0;j<n;++j)
                        cout<<" "<<a[i][j];
                        cout<<std::endl;
                }
 
 
    return 0;
}
Yacov, тут возникает вопрос, к примеру у нас матрица:
1 2 5
3 8 7
9 -1 2
Меняем строку с максимальным элементом со столбцом с минимальным элементом, получаем:
1 9 5
3 -1 7
2 8 -1
Т. е. на пересечении 3 строки и 2 столбца один элемент накладывается на другой.
Я не знаю что с этим делать, как надо..
спасибо большое, тебе кончно ну тут еще загвоздка: Поэлементно поменять местами строку с максимальным элементом со столбцом с минимальным элементом.((((
Lenochex
 Аватар для Lenochex
5 / 5 / 0
Регистрация: 16.03.2012
Сообщений: 15
20.03.2012, 18:26     В квадратной матрице X(n,n) найти максимальный и минимальный элементы. #4
Yacov, ну я как раз и попыталась это сделать, но проблема, что на пересечении строки и столбца один элемент накладывается на другой, пример выше под кодом
Yandex
Объявления
20.03.2012, 18:26     В квадратной матрице X(n,n) найти максимальный и минимальный элементы.
Ответ Создать тему
Опции темы

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