Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 24.09.2009
Сообщений: 17
1

Поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значение

11.12.2018, 22:26. Показов 1487. Ответов 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
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(0, "");
    cout << "Введите размеры";
    int n, m;
    cin >> m >> n;
    int** a = new int*[m];
    for (int i = 0; i<m; i++) {
        a[i] = new int[n];
    }
    cout << "Вводите элементы: " << endl;
    for (int i = 0; i<m; i++)
    {
        for (int j = 0; j<n; j++)
        {
            cin >> a[i][j];
        }
        cout << endl;
    }
    for (int i = 0; i<m; i++)
    {
        for (int j = 0; j<n; j++)
        {
            cout << a[i][j] << "  ";
        }
        cout << endl;
    }
    cout << "===================" << endl;
 
    ///
    int tmax, tmin, t;
    for (int j = 0; j<n; j++)
    {
        tmin = 0;
        tmax = 0;
        for (int i = 0; i<m; i++)
        {
            if (a[i][j]<a[tmin][j]) tmin = i;
            if (a[i][j]>a[tmax][j]) tmax = i;
        }
 
        t = a[tmin][j];
        a[tmin][j] = a[tmax][j];
        a[tmax][j] = t;
 
    }
    ///
    for (int i = 0; i<m; i++)
    {
        for (int j = 0; j<n; j++)
        {
            cout << a[i][j] << "  ";
        }
        cout << endl;
    }
    for (int i = 0; i <m; i++)
        delete[]a[i];
    delete[]a;
    system("pause");
    return 0;
}


Что бы она меняла не значение матрицы, а строку целиком. Задание звучит так

"В данной действительной матрице размера mn поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значением. Предполагается, что такой элемент единственный. "
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2018, 22:26
Ответы с готовыми решениями:

В матрице поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значением
В данной действительной матрице размера 3*3 поменять местами строку, содержащую элемент с...

Поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значением
В данной действительной матрице размера 6х9 поменять местами строку, содержащую элемент с...

В данной действительной матрице размера 3Х3 поменять местами строку, содержащую элемент с наибольшим значе-нием, со строкой, содержащей элемент с наим
В данной действительной матрице размера 3Х3 поменять местами строку, содержащую элемент с...

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

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
2
5919 / 4021 / 2331
Регистрация: 18.12.2017
Сообщений: 12,588
11.12.2018, 22:45 2
Лучший ответ Сообщение было отмечено Nishen как решение

Решение

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
#include <iostream>
using namespace std;
 
int main()
{
    int m, n, imax=0, imin=0;
    cout <<"m="; cin >>m;
    cout <<"n="; cin >>n;
    
      double **a = new double*[m], max=0.0, min=0.0; 
    for (int i = 0; i < m; i++)
    a[i] = new double[n];
    
    cout <<"Enter "<<m*n<<" elements:\n";
    for (int i = 0; i < m; i++)    
    for (int j = 0; j < n; j++)
    {
    cin >>a[i][j];
    if((i==0 && j==0) || a[i][j]>max) {max=a[i][j];imax=i;}
    if((i==0 && j==0) || a[i][j]<min) {min=a[i][j];imin=i;}
    }
    
    cout <<"max="<<max<<"  min="<<min<<"\n";
    
    swap(a[imax],a[imin]);    
    
    for (int i = 0; i < m; i++)
    {
    for (int j = 0; j < n; j++)
    cout <<a[i][j]<<" ";
    cout <<"\n";
    }
 
    for (int i = 0; i < m; i++)
    delete [] a[i];
    delete [] a;
system("pause");
return 0;
}
1
1 / 1 / 0
Регистрация: 24.09.2009
Сообщений: 17
12.12.2018, 09:46  [ТС] 3
А можно добавить вывод сформированной матрицы после ввода элементов?

Добавлено через 19 минут
А всё сам додумался, спасибо)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2018, 09:46

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Поменять местами строку, содержащую элемент с наибольшим значением, со строкой содержащей элемент с наименьшим значением
Доброго времени суток! Помогите решить задание на с# (тема двумерные массивы): В данной двумерной...

Поменять местами строку, содержащую элемент с наибольшим значением со строкой содержащей элемент с наименьшим значением
Дан двумерный массив размерностью МхN . заполненный случайным образом . поменять местами строку...

Поменять местами строку, содержащую элемент с наибольшим значением со строкой содержащей элемент с наименьшим значением
В действительной матрице поменять местами строку, содержащую элемент с наибольшим значением со...

В матрице размером NxM поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значением.
Помогите пожалуйста!!!


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.