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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
VladosLancer
1 / 1 / 0
Регистрация: 03.10.2011
Сообщений: 96
#1

Поменять местами максимальный и минимальный элементы матрицы - C++

03.10.2012, 23:00. Просмотров 1403. Ответов 3
Метки нет (Все метки)

Здравствуйте. Помогите, пожалуйста, написать следующую программу: Дана матрица порядка n. Поменять местами максимальный и минимальный элементы относительно главной диагонали, т.е. сначала нужно найти минимальный элемент снизу относительно главной диагонали, потом найти максимальный элемент сверху относительно главной диагонали, а потом их поменять местами. Например, если нам дана матрица
1 3 6 8
9 12 7 10
5 8 9 11
15 86 92 10
то местами нужно поменять цифры 5 и 11 и получится матрица:
1 3 6 8
9 12 7 10
11 8 9 5
15 86 92 10
Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2012, 23:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поменять местами максимальный и минимальный элементы матрицы (C++):

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

Поменять местами строки, содержащие минимальный и максимальный элементы матрицы - C++
Дана матрица размера 5х10. Поменять местами строки, содержащие минимальный и максимальный элементы матрицы.

В прямоугольной матрицы поменять местами строки, содержащие максимальный и минимальный ее элементы - C++
В прямоугольной матрицы поменять местами строки, содержащие максимальный и минимальный ее элементы. Большое вам спасибо!!!

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

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

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним - C++
Дана матрица B. Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами первым и последним элементам строки...

3
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
04.10.2012, 00:09 #2
Если матрица a[][] размерностью n*n уже есть, то можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int i_min=1, j_min=0, i_max=0, j_max=1, i, j;
for(i=0; i<n-1; i++)
    for(j=i+1; j<n; j++)
        if(a[i][j]>a[i_max][j_max])
        {
            i_max=i; j_max=j;
        }
for(i=2; i<n; i++)
    for(j=0; j<i; j++)
        if(a[i][j]<a[i_min][j_min])
        {
            i_min=i; j_min=j;
        }
int t=a[i_min][j_min]; a[i_min][j_min]=a[i_max][j_max]; a[i_max][j_max]=t;
// в этом месте матрица a[][] уже преобразована
1
VladosLancer
1 / 1 / 0
Регистрация: 03.10.2011
Сообщений: 96
04.10.2012, 00:20  [ТС] #3
Матрица квадратная. А можно полностью код? Размерность и матрицу нужно вводить с клавиатуры
0
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
04.10.2012, 00:27 #4
Цитата Сообщение от VladosLancer Посмотреть сообщение
Матрица квадратная
я догадался.
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
#include <iostream>
using namespace std;
 
int main()
{
    int i_min=1, j_min=0, i_max=0, j_max=1, i, j, a[100][100], n;
    cout<<"n= "; cin>>n;
    for(i=0; i<n; i++)
        for(j=0; j<n; j++)
        {
            cout<<"["<<i<<"]["<<j<<"]= ";
            cin>>a[i][j];
        }
    cout<<"Ishodn matr:"<<endl;
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
            cout<<a[i][j]<<" ";
        cout<<endl;
    }
    for(i=0; i<n-1; i++)
        for(j=i+1; j<n; j++)
            if(a[i][j]>a[i_max][j_max])
            {
                i_max=i; j_max=j;
            }
    for(i=2; i<n; i++)
        for(j=0; j<i; j++)
            if(a[i][j]<a[i_min][j_min])
            {
                i_min=i; j_min=j;
            }
    int t=a[i_min][j_min]; a[i_min][j_min]=a[i_max][j_max]; a[i_max][j_max]=t;
// в этом месте матрица a[][] уже преобразована
    cout<<"Poluch matr:"<<endl;
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
            cout<<a[i][j]<<" ";
        cout<<endl;
    }
    return 0;
}
2
04.10.2012, 00:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2012, 00:27
Привет! Вот еще темы с ответами:

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним элементом - C++
Я решила задачку но что-то не так(ошибки никак не исправлю... помогите исправте ошибки,что не правильно я сделала /*Дана матрица B....

Дана матрица размера M × N. Поменять местами строки, содержащие минимальный и максимальный элементы матрицы - C++
Я написал программу меняющую максимальный и минимальный элемент местами, но поменять строчки в которых они содержатся не получается ...

Поменять местами максимальный и минимальный элементы - C++
А вот ету задачку поможете решить????? Поменять местами максимальный и минимальный элементы.

Поменять местами минимальный и максимальный элементы файла - C++
Дан файл вещественных чисел, в нём требуется поменять местами минимальный и максимальный элементы. Сам обмен понятен, не ясно как...


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

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

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