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

Поменять местами наибольший элемент в первой строке матрицы с наименьшим элементом в третьей строке

25.10.2015, 18:55. Показов 1017. Ответов 17
Метки нет (Все метки)

В двумерном массив заменить местами наибольший элемент в первой строчке с наименьшим элементом в третьем
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2015, 18:55
Ответы с готовыми решениями:

В двухмерном массиве поменять местами наибольший элемент в первой строке с наименьшим элементом в третьей
в данном двухмерном массиве поменять местами наибольший элемент в первой строке с наименьшим...

В матрице поменять местами наибольший элемент в первой строке с наименьшим в 3-ей
в двухмерном массиве поменять местами наибольший елемент в 1 строке с наименшим в 3 помогите с...

В каждой строке матрицы наибольший элемент поменять местами с элементом главной диагонали
В общем вот задачки, буду очень благодарен вам за помощь: 1. Найти в каждой строке матрицы n, m...

Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали в этой же строке
Дана целочисленная квадратная матрица. Найти в каждой строке наибольший элемент и поменять его...

17
Модератор
Эксперт С++
12756 / 10218 / 6142
Регистрация: 18.12.2011
Сообщений: 27,358
25.10.2015, 19:00 2
Образцы (шаблоны) программ для типовых задач
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//
// пример обработки матрицы
// заменить местами наибольший элемент в первой строчке с наименьшим элементом в третьем
//
void Process( int ** M, size_t n, size_t m ) 
{
   if(n<3)return;
   int mx,mn;
   mx=mn=0;
   for ( size_t i = 1; i < m; ++i ) 
   {
       if(M[0][i]>M[0][mx])
          mx=i;
       if(M[2][i]<M[0][mn])
          mn=i;
   }
   int t=M[0][mx];
   M[0][mx]=M[2][mn];
   M[2][mn]=t;
}
0
0 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 89
26.10.2015, 14:40  [ТС] 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
36
37
38
39
40
41
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
{
int M = 0, N = 0;
int 
    cout << "Enter an mass_A size:"<<endl;
    cout << "M: "; cin >> M;
    cout << "N: "; cin >> N;
    cout << endl;
 
    int **mass_A = new int*[M];
    for(int i = 0; i < N; i++)
        mass_A[i] = new int[N];
    
    cout << "Fill an mass_A array: "<<endl;
    for(int i = 0; i < M; i++)
    {
        for(int j = 0; j < N; j++)
            cin >> mass_A[i][j];
    }
    for (size_t i = 1; i < M; i++)
    {
        if (mass_A[0][j] > mass_A[0][M])
            M=i;
        if (mass_A[2][j] < mass_A[0][N])
        N=i;
    }
    int t=mass_A[0][mx];
    mass_A[0][M]=mass_A[2][N];
    mass_A[2][N]=t;
    cout << t<<endl;
            
            
    
    getch ();
    return 0;
}
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
26.10.2015, 14:44 4
Veorirac, а компилятор что говорит?
0
0 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 89
26.10.2015, 14:55  [ТС] 5
Ошибки нет, но программа не выводит нужный ответ
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
26.10.2015, 15:02 6
Veorirac, тогда зачем спрашивать где ошибка? И давайте, чтобы я не вытаскивала всё у Вас. Это не мне нужно. Какой ответ выдает программа? Какой должен выдавать программа? И Ваши личные предположение что может быть не так.
0
Эксперт .NET
5859 / 4736 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
26.10.2015, 15:09 7
Цитата Сообщение от Veorirac Посмотреть сообщение
Ошибки нет,
а где объявлен mx (строка 32) и какое у него значение?
В строках 25-31 вообще черт знает что происходит.
Цитата Сообщение от Veorirac Посмотреть сообщение
программа не выводит нужный ответ
Что указано в коде, то она и выводит. А указано, чтобы она выводила переменную t (стр. 35)
0
0 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 89
26.10.2015, 16:24  [ТС] 8
А можно полностью код написать, с библиотеками и выводом полученного ответа?

Добавлено через 18 часов 47 минут
А как вывести массив с этими изменениями?
0
0 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 89
26.10.2015, 16:27  [ТС] 9
Допусти есть массив
1 2 3
4 5 6
7 8 9
Должно вывести
1 2 7
4 5 6
3 8 9
Немного подправил код, но не знаю как вывести массив с этими изменениями тройки и семерки
Могу вывести именно тройку и семерку, а вот что бы они были в массиве не получается
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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
{
int M = 0, N = 0;
int mx,mn;
   mx=mn=0;
    cout << "Enter an mass_A size:"<<endl;
    cout << "M: "; cin >> M;
    cout << "N: "; cin >> N;
    cout << endl;
 
    int **mass_A = new int*[M];
    for(int i = 0; i < N; i++)
        mass_A[i] = new int[N];
    
    cout << "Fill an mass_A array: "<<endl;
    for(int i = 0; i < M; i++)
    {
        for(int j = 0; j < N; j++)
            cin >> mass_A[i][j];
    }
    for (size_t j = 1; j < N; j++)
    {
        if (mass_A[0][j] > mass_A[0][mx])
            mx=j;
        if (mass_A[2][j] < mass_A[2][mn])
            mn=j;
    }
 
 
    getch ();
    return 0;
}
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
26.10.2015, 16:27 10
Veorirac, через std::cout
0
Эксперт .NET
5859 / 4736 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
26.10.2015, 16:43 11
Veorirac,
вот так можно вывести двумерный массив:
C++
1
2
3
4
5
6
for(int i = 0; i < M; i++)
{
   for(int j = 0; j < N; j++)
      cout << mass_A[i][j] << "\t";
   cout << endl;
}
Выводить его нужно дважды: до замены и после.
Замену можно осуществить как в строках 32-34 первоначального варианта кода.
Менять нужно элементы mass_A[0][mx] и mass_A[2][mn].
0
0 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 89
26.10.2015, 17:58  [ТС] 12
Так, а как вывести массив с изменениями?
0
Эксперт .NET
5859 / 4736 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
26.10.2015, 18:01 13
Цитата Сообщение от Veorirac Посмотреть сообщение
Так, а как вывести массив с изменениями?
Не поверите! Точно также.
0
0 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 89
26.10.2015, 18:04  [ТС] 14
А ты можешь написать полный код и использую код выше?
0
0 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 89
26.10.2015, 18:26  [ТС] 15
вывести массив с этими изменениями
0
Эксперт .NET
5859 / 4736 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
26.10.2015, 18:49 16
Цитата Сообщение от Veorirac Посмотреть сообщение
А ты можешь написать полный код и использую код выше?
Могу, но не буду. Ибо тоже лентяй.

Добавлено через 11 минут
Veorirac,
Выкладывай код, который есть на данный момент (только с тегами), помогу исправить ошибки
0
0 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 89
26.10.2015, 19:04  [ТС] 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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
{
int M = 0, N = 0;
int mx,mn;
   mx=mn=0;
    cout << "Enter an mass_A size:"<<endl; //вводим размерность массива
    cout << "M: "; cin >> M;
    cout << "N: "; cin >> N;
    cout << endl;
 
    int **mass_A = new int*[M]; 
    for(int i = 0; i < N; i++)
        mass_A[i] = new int[N];
    
    cout << "Fill an mass_A array: "<<endl; // вводим массив
    for(int i = 0; i < M; i++)
    {
        for(int j = 0; j < N; j++)
            cin >> mass_A[i][j];
    }
    for (size_t j = 1; j < N; j++)
    {
        if (mass_A[0][j] > mass_A[0][mx]) //находим самый большой элемент в первой строке
            mx=j;
        if (mass_A[2][j] < mass_A[2][mn]) //находим самый маленький элемент в третьей строке
            mn=j;
 
}
    getch ();
    return 0;
0
Эксперт .NET
5859 / 4736 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
26.10.2015, 19:15 18
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 <conio.h>
 
using namespace std;
 
int main()
{
int M = 0, N = 0;
int mx,mn;
   mx=mn=0;
    cout << "Enter an mass_A size:"<<endl; //вводим размерность массива
    cout << "M: "; cin >> M;
    cout << "N: "; cin >> N;
    cout << endl;
 
    int **mass_A = new int*[M]; 
    for(int i = 0; i < N; i++)
        mass_A[i] = new int[N];
    
    cout << "Fill an mass_A array: "<<endl; // вводим массив
    for(int i = 0; i < M; i++)
    {
        for(int j = 0; j < N; j++)
            cin >> mass_A[i][j];
    }
    cout << "Input array: "<<endl;
    for(int i = 0; i < M; i++)
    {
       for(int j = 0; j < N; j++)
          cout << mass_A[i][j] << "\t";
       cout << endl;
    }
    for (int j = 1; j < N; j++)
    {
        if (mass_A[0][j] > mass_A[0][mx]) //находим самый большой элемент в первой строке
            mx=j;
        if (mass_A[2][j] < mass_A[2][mn]) //находим самый маленький элемент в третьей строке
            mn=j;
    }
    int t=mass_A[0][mx];
    mass_A[0][mx]=mass_A[2][mn];
    mass_A[2][mn]=t;
    cout << "Output array: "<<endl;
    for(int i = 0; i < M; i++)
    {
       for(int j = 0; j < N; j++)
          cout << mass_A[i][j] << "\t";
       cout << endl;
    }
    getch ();
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.10.2015, 19:15
Помогаю со студенческими работами здесь

Найти в каждой строке матрицы наибольший элемент и поменять его местами с элементом главной диагонали.
Помогите пожалуйста решить прогу очень срочно нада. До 13.00 очень нада. &quot;Дана целочисленная...

В каждой строке матрицы A (n, n) найти наибольший элемент и поменять его местами с соответствующим диагональным элементом.
В каждой строке матрицы A (n, n) найти наибольший элемент и поменять его местами с соответствующим...

В каждой строке матрицы найти наибольший элемент, поменять его местами с элементом главной диагонали
Дана целочисленная квадратная матрица. Найти в каждой ее строке наибольший элемент и поменять его...

Найти в каждой строке матрицы наибольший элемент и поменять его местами с элементом главной диагонали
Задание: Дана целочисленная квадратная матрица. Найти в каждой стро*ке наибольший элемент и...


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

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

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