0 / 0 / 0
Регистрация: 29.10.2018
Сообщений: 22
1

Поменять местами элементы матрицы min и min0, а затем вывести получившуюся матрицу

06.05.2019, 19:18. Показов 1094. Ответов 10
Метки нет (Все метки)

Добрый вечер. Необходимо поменять местами элементы матрицы min и min0. Подскажите как это сделать, пожалуйста.
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
#include <iomanip>
#define n 4
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main(void)
{
int i, j, min, min1, min0, min2;
int arr[n][n];
 
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
arr[i][j] = rand() % 100;
cout << setw(2)<< arr[i][j] << " ";
}
cout << endl;
}
 
min = arr[0][0];
min1 = arr[0][0];
min0 = arr[0][0];
min2 = arr[0][0];
 
for(i = 0; i < n/2; ++i)
{ for(j = 0; j < n/2; ++j)
{ if(min > arr[i][j] )
min = arr[i][j];
 
for(i = n/2; i < n; ++i)
{ for(j = n/2; j < n; ++j)
{ if(min1 > arr[i][j] )
min1 = arr[i][j];
}
 
if (min<min1){
min=min;}
else{min=min1;}
}
for(i = n/2; i < n; ++i)
{ for(j = 0; j < n/2; ++j)
{ if(min0 > arr[i][j] )
min0 = arr[i][j];
 
for(i = 0; i < n/2; ++i)
{ for(j = n/2; j < n; ++j)
{ if(min2 > arr[i][j] )
min2 = arr[i][j];
}
 
if (min0<min2){
min0=min0;}
else{min0=min2;}
 
}
}
cout <<"Min no shtrix= " << min << endl;
cout <<"Min shtrix= " << min0 << endl;
 
 
system("pause");
return 0;
}
}
}}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.05.2019, 19:18
Ответы с готовыми решениями:

Удалить из матрицы последний столбец и затем транспонировать получившуюся матрицу
Помогите откорректировать задачу. Суть задачи: дана матрица &quot;а&quot; , необходимо удалить из нее...

Найти min и max элементы квадратной матрицы и поменять местами строки, в которых находятся эти элементы
Здраствуйте, стыдно просить такую глупость для вас, но сам я не могу реализовать вот такой код:...

Поменять местами max и min элементы матрицы, с учетом повторяемости
Добрый день, столкнулся с такой проблемой описанной в названии темы. Вот код всей программы...

В каждом столбце матрицы поменять местами Min и Max элементы
Задание: Вводится с клавиатуры размерность матрицы, заполнение рандомом и в каждом столбце...

10
14 / 17 / 11
Регистрация: 20.10.2018
Сообщений: 98
06.05.2019, 19:39 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int mHelp [/*тут количество строк*/] [ /*тут количество столбиков*/];
for (int i = 0; i < /*тут количество строк*/; i ++)
{
     for (int j = 0; j < /*тут количество столбиков*/; j  ++)
     {
           mHelp [i] [j] = min [i] [j];
      }
}
for (int i = 0; i < /*тут количество строк*/; i ++)
{
     for (int j = 0; j < /*тут количество столбиков*/; j  ++)
     {
           min [i] [j] = min0 [i] [j];
      }
}
for (int i = 0; i < /*тут количество строк*/; i ++)
{
     for (int j = 0; j < /*тут количество столбиков*/; j  ++)
     {
           min0 [i] [j] = mHelp [i] [j];
      }
}
0
0 / 0 / 0
Регистрация: 29.10.2018
Сообщений: 22
06.05.2019, 19:47  [ТС] 3
А как потом вывести получившуюся матрицу?
0
7416 / 5011 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
06.05.2019, 23:14 4
Цитата Сообщение от yelar Посмотреть сообщение
Необходимо поменять местами элементы матрицы min и min0
напишите оригинал условия задачи
0
14 / 17 / 11
Регистрация: 20.10.2018
Сообщений: 98
07.05.2019, 20:00 5
C++
1
2
3
4
5
6
7
8
for (int i = 0; i < /*тут количество строк*/; i ++)
{
     for (int j = 0; j < /*тут количество столбиков*/; j  ++)
     {
           cout << m [i] [j] << " ";
      }
     cout << "\n";
}
0
0 / 0 / 0
Регистрация: 29.10.2018
Сообщений: 22
07.05.2019, 21:56  [ТС] 6
2.Найти минимальные среди элементов, расположенных в заштрихованной и не заштрихованной областях, и поменять их местами.
Изображения
 
0
7416 / 5011 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
07.05.2019, 22:44 7
yelar, на картинке не видно что подписано. n - чётное ?

если минимальных в области больше чем одно, менять только первое ?
0
0 / 0 / 0
Регистрация: 29.10.2018
Сообщений: 22
08.05.2019, 13:58  [ТС] 8
без разницы. да, менять только первое
0
7416 / 5011 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
08.05.2019, 14:32 9
yelar, Вы не ответили, что там подписано. сделал для квадратной матрицы и для чётных 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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    int n, i1=0, j1=0, i2=0, j2=0;
    
    do
    {
    cout << "Enter even n: "; cin >> n;
    if (n%2!=0) cout << "n - even  Repeat please...\n";
    }
    while (n%2!=0);
    
      double **a = new double*[n], min1=0.0, min2=0.0;
    for (int i = 0; i < n; i++)
         a[i]=new double[n];
         
    int m=n/2;     
    
    for (int i = 0; i < n; i++)
    {
    for (int j = 0; j < n; j++)
    {
      a[i][j]=rand()%9+ 1;
      if (i<m && j>=m && ((i==0 && j==m) || a[i][j]<min1)) {min1=a[i][j];i1=i;j1=j;} 
      if (i>=m && j<m && ((i==m && j==0) || a[i][j]<min2)) {min2=a[i][j];i2=i;j2=j;}
      cout << a[i][j] << " ";
    }
    cout << "\n";
    }
    cout << "\n";
    
    swap(a[i1][j1],a[i2][j2]);
    
    for (int i = 0; i < n; i++)
    {
    for (int j = 0; j < n; j++) 
      cout << a[i][j] << " ";   
    cout << "\n";
    }
 
    for (int i = 0; i < n; i++)
    delete[]a[i];
    delete[]a;
 
system("pause");
return 0;
}
0
0 / 0 / 0
Регистрация: 29.10.2018
Сообщений: 22
09.05.2019, 09:31  [ТС] 10
Немного не так должно работать. В вашей программе меняются местами элементы из заштрихованных областей. А нужно найти минимальное во всей заштрихованной и во всей не заштрихованной областях и поменять их между собой.
0
7416 / 5011 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
09.05.2019, 12:35 11
Лучший ответ Сообщение было отмечено yelar как решение

Решение

Цитата Сообщение от yelar Посмотреть сообщение
Немного не так должно работать.
внёс корректировки
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    int n, i1=0, j1=0, i2=0, j2=0;
    
    do
    {
    cout << "Enter even n: "; cin >> n;
    if (n%2!=0) cout << "n - even  Repeat please...\n";
    }
    while (n%2!=0);
    
      double **a = new double*[n];
    for (int i = 0; i < n; i++)
         a[i]=new double[n];
         
    int m=n/2;     
    
    for (int i = 0; i < n; i++)
    {
    for (int j = 0; j < n; j++)
    {
      a[i][j]=rand()%100;
      if (((i<m && j>=m) || (i>=m && j<m)) && a[i][j]<a[i1][j1]) {i1=i;j1=j;} 
      if (((i<m && j<m) || (i>=m && j>=m)) && a[i][j]<a[i2][j2]) {i2=i;j2=j;}
      cout << setw(2) << a[i][j] << " ";
    }
    cout << "\n";
    }
    cout << "\n";
    
    swap(a[i1][j1],a[i2][j2]);
    
    for (int i = 0; i < n; i++)
    {
    for (int j = 0; j < n; j++) 
      cout << setw(2) << a[i][j] << " ";   
    cout << "\n";
    }
 
    for (int i = 0; i < n; i++)
    delete[]a[i];
    delete[]a;
 
system("pause");
return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.05.2019, 12:35
Помогаю со студенческими работами здесь

Преобразовать исходную матрицу,определив в каждой строке max и min элементы, после чего поменять их местами
Дана матрица D(8x8), элементами которой являются целые числа. Преобразовать исходную матрицу...

Преобразовать исходную матрицу D(8x8),определив в каждой строке max и min элементы, после чего поменять их местами.
Дана матрица D(8x8), элементами которой являются целые числа. Преобразовать исходную матрицу...

Поменять местами элементы главной диагонали матрицы содержащие min и max
Здраствуйте, может кто-нибудь помочь с задачкой: Среди элементов главной диагонали матрицы H(8x8)...

Массив: Преобразовать исходную матрицу D(8x8),определив в каждой строке max и min элементы, после чего поменять их местами
Задача №1. Дана матрица D(8x8), элементами которой являются целые числа. Преобразовать исходную...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru