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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
lesha 13
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 20
#1

Двумерный массив: поменять местами две строки - C++

17.05.2014, 04:58. Просмотров 877. Ответов 1
Метки нет (Все метки)

Нужно поменять местами две строки в массиве:строку,
которая содержит максимальный элемент матрицы, и строку, содержащую минимальный
элемент матрицы.
У меня получается, что меняются столбцы, а не строки, не могу понять в чем проблема(
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
#include<iostream>
#include<conio.h>
using namespace std;
void vvod();
void vyvod(int**Arr, int n, int m);
void poisk(int**Arr, int n, int m);
void peres(int**Arr, int n, int m, int max_j, int min_j);
void vvod()
{
    setlocale(0,( "russian"));
    int n,m;
    int **Arr=0;
    cout<<"Введите количество строк и столбцов:";
    cin>>n>>m;
    Arr = new int*[n];
    for(int i=0;i<n;i++)
        Arr[i]=new int[m];
    for(int j=0;j<n;j++)
        for(int i=0;i<m;i++)
        {
            cout<<"A["<<j<<"]["<<i<<"]=";
            cin>>Arr[j][i];
        }
        vyvod(Arr,n,m);
        poisk(Arr,n,m);
}
 
void vyvod(int **Arr,int n,int m)
{
    for(int j=0;j<n;j++)
    {
        for(int i=0;i<m;i++)
        cout<<Arr[j][i]<<"  ";
    cout<<endl;
    }
 
}
 
void poisk(int**Arr,int n,int m)
{
int max=0, min=0, min_j=Arr[0][0],max_j=Arr[0][0];
for (int j = 0; j < n; j++)
{
        for (int i = 0; i < m; i++)
        {
            if (max_j < Arr[j][i])
            {
                max_j = Arr[j][i];
                max=i;
            }
            if (min_j > Arr[j][i])
            {
                min_j = Arr[j][i];
                min=i;
            }
        }
}
peres(Arr,n,m,max,min);
}
void peres(int**Arr,int n,int m,int max,int min)
{
    int y;
    
    
        for (int i = 0; i < m; i++)
        {
            y = Arr[i][min];
            Arr[i][min] = Arr[i][max];
            Arr[i][max] = y;
 
        }
        cout<<"\nМассив:\n";
        vyvod(Arr,n,m);
}
void main()
{
    vvod();
    getch();
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2014, 04:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Двумерный массив: поменять местами две строки (C++):

Двумерный массив: поменять местами две строки - C++
В матрице из целых положительных чисел поменять местами две строки: строка, которая содержит максимальный элемент матрицы, и строку,...

Дан двумерный массив. Поменять местами 1 и 3 строки - C++
Нужно поменять местами 1 и 3 строки. Я сначала ввожу кол-во строк и столбцов, допустим 3 и 4. Затем задаю 12 чисел от 1 до 12. Сначала...

Поменять местами две строки матрицы - C++
1 6 7 2 5 8 3 4 9. Язык программирования Си.

Поменять местами две заданные строки матрицы - C++
С++. Дан двумерный числовой массив. Составить программу обмена местами заданных двух его строк.

Поменять местами две любые строки матрицы - C++
Дан двумерный массив. Составить программу, которая меняет местами две любые строки массива

В матрице поменять местами две строки с заданными номерами - C++
2)Из элементов полученной матрицы, которые лежат на главной диагонали и под ней, сформировать нижнюю треугольную матрицу С; 3)Из...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nullpointer
46 / 46 / 5
Регистрация: 30.03.2009
Сообщений: 522
17.05.2014, 09:40 #2
lesha 13, конечно он будет столбцы менять местами, у вас же в функции перестановки меняется номер строки, а не столбца. Должно быть вот так:
C++
1
2
3
4
5
6
for (int i = 0; i < m; i++)
 {
    y = Arr[min][i];
    Arr[min][i] = Arr[max][i];
    Arr[max][i] = y;
 }
И оформляйте код по правилам, невозможно же читать.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2014, 09:40
Привет! Вот еще темы с ответами:

Двумерный массив.Мах и Мин поменять местами... - C++
Здравствуйте! Написать программу которая создает матрицу a*b. Найти максимальный элемент.И поменять их в массиве местами вывести массив....

Поменять местами две средние строки матрицы с первой и последней - C++
Ребят Добрый вечер помогите написать программу на с++, очень нужно у самого в с++ фактически нулевые знания. Буду очень очень...

Разработать функцию, позволяющую поменять местами две произвольные строки матрицы - C++
Имеется код: #include &lt;iostream&gt; #include &lt;stdio.h&gt; using namespace std; char **s = new char* , *t; int i, j, n; int main() {...

Двумерный массив. Поменять местами max и min четных строк - C++
Составить программу на языке C++ для обработки двумерных массивов с использованием указателей и входных и выходных файлов. Дана...


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

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

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