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

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

Войти
Регистрация
Восстановить пароль
 
manynka
0 / 0 / 0
Регистрация: 26.06.2012
Сообщений: 5
#1

Поменять местами строку с максимальным элементом на главной диагонали со строкой с заданным номером t - C++

28.06.2012, 16:01. Просмотров 1109. Ответов 6
Метки нет (Все метки)

Задана квадратная матрица. Поменять местами строку с максимальным элементом на главной диагонали со строкой с заданным номером t.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2012, 16:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поменять местами строку с максимальным элементом на главной диагонали со строкой с заданным номером t (C++):

Поменять местами строку с минимальным элементом на главной диагонали со строкой с заданным номером t. - C++
Задана квадратная матрица, размерности n, где n=2z. Поменять местами строку с минимальным элементом на главной диагонали со строкой с ...

Переставить строку матрицы с максимальным элементом на главной диагонали, со строкой с заданным номером m - C++
Задана квадратная матрица. Переставить строку с максимальным элементом на главной диагонали со строкой с заданным номером m.

Поменять местами строку матрицы с максимальным элементом на главной диагонали со строкой m - C++
#include<conio.h> #include<iostream.h> #include<iomanip.h> #include<stdlib.h> void main() { int i,j,m,n,A,t,JmaxA,ImaxA,B; ...

Задана квадратная матрица. Поменять местами строку с максимальным элементом на главной диагонали со строкой с - C++
Задана квадратная матрица. Поменять местами строку с максимальным элементом на главной диагонали со строкой с заданным номером n.

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Zuzik
237 / 222 / 38
Регистрация: 11.06.2012
Сообщений: 1,446
28.06.2012, 16:14 #2
A - твоя матрица, n ее размер. Вот сам код который заменяет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int maxindex=0,maxElement=0;
for(int i=0;i<n;i++)
{
if(A[i][i]>maxElement)
{
maxElement=A[i][i];
maxindex=i;
}
}
for (int j=0;j<n;j++)
{
int temp=0;
temp=A[t][j];
A[t][j]=A[maxindex][j];
A[maxindex][j]=temp;
}
1
manynka
0 / 0 / 0
Регистрация: 26.06.2012
Сообщений: 5
28.06.2012, 18:13  [ТС] #3
не меняет....
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
28.06.2012, 19:03 #4
Можно сделать так

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
#include <iostream> 
#include <ctime> 
#include <cstdlib> 
#include <iomanip> 
using namespace std; 
int main()
{   
    setlocale(0, "rus");  // русская консоль
    const int size = 5;   // размер маорицы
    srand((unsigned) time(0));
    int matrix[size][size]; // матрица
    int i, j; 
    int max; 
    int index;
    int t;
    for( i = 0; i < size; i++)
        for ( j = 0; j < size; j++)
            matrix[i][j] = rand() % 100; // заполняем случайными числами
 
    for ( i = 0; i < size; i++)
        for ( j = 0; j < size; j++) // выводим матрицу на экран
        {
            if( j % size == 0) 
                cout << endl; 
            cout << setw(3) << matrix[i][j]; 
        }  
        cout << endl; 
        max = matrix[0][0]; 
        index = 0;
        for ( i = 1; i < size; i++)  // ищем максимальный элемент диагонали
        {
        if( max < matrix[i][i]) 
            max = matrix[i][i];  
           index = i; // индекс где расположен максимальный элемент
        }
 
        cout << "Максимальный элемент главной диагонали " << max << endl; // выводим максимальный элемент
 
        cout << "Введите t (0-4) "<< endl; 
        cin >> t; 
 
        
            for ( j = 0; j < size; j++) // меняем местами строки
            { 
                int temp = matrix[index][j]; 
                matrix[index][j] = matrix[t][j]; 
                matrix[t][j] = temp; 
            } 
 
for ( i = 0; i < size; i++)       // выводим изменённую матрицу
        for ( j = 0; j < size; j++) 
        {
            if( j % size == 0) 
                cout << endl; 
            cout << setw(3) << matrix[i][j]; 
        }  
            cout << endl;
   
            system("Pause");
}
1
manynka
0 / 0 / 0
Регистрация: 26.06.2012
Сообщений: 5
28.06.2012, 19:37  [ТС] #5
работает....спасибо огромное...
0
zarko97
276 / 36 / 0
Регистрация: 11.10.2015
Сообщений: 381
13.05.2017, 01:43 #6
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
    std::random_device rand;
    std::default_random_engine gen(rand());
    std::uniform_int_distribution <int> distr(-50, 50);
    std::size_t row;
    std::size_t size;
    while (std::cout << "Input row & size: " && std::cin >> row >> size && row <= 0 && size <= 0);
    std::vector<std::vector<int>> vector2d(size, std::vector<int>(size, 0));
    std::for_each(vector2d.begin(), vector2d.end(), [&gen, &distr](std::vector <int> & curLine) -> std::vector <int>
    {
        std::generate(curLine.begin(), curLine.end(), [&gen, &distr]() -> int { return distr(gen); });
        std::copy(curLine.begin(), curLine.end(), std::ostream_iterator <int>(std::cout << std::endl, "\t"));
        //std::for_each(curLine.begin(), curLine.end(), std::cout << std::endl << boost::lambda::_1 << "\t");
        std::cout << std::endl;
        return curLine;
    });
    std::vector<std::vector<int>>::iterator new_pos = std::max_element(vector2d.begin(), vector2d.end(), [](std::vector <int> const & vec_lhs, std::vector <int> const & vec_rhs) -> bool
    {
        int cur_pos = 0;
        return vec_lhs[cur_pos++] < vec_rhs[cur_pos++ + 1];
    });
    std::vector<std::vector<int>>::size_type beg = new_pos - vector2d.begin();
    if (beg != row)
        std::swap_ranges((vector2d.begin() + beg)->begin(), (vector2d.begin() + beg)->end(), (vector2d.begin() + row)->begin());
 
for (auto && vec : vector2d) {
    for (auto && val : vec) {
        std::cout << val << "\t";
    }
    std::cout << std::endl << std::endl;
}
Добавлено через 3 часа 30 минут
поправочка
C++
1
std::vector<std::vector<int>>::size_type beg = std::distance(vector2d.begin(), new_pos);
0
Captain Maxee
13.05.2017, 03:35     Поменять местами строку с максимальным элементом на главной диагонали со строкой с заданным номером t
  #7

Не по теме:

zarko97, 28.06.2012

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2017, 03:35
Привет! Вот еще темы с ответами:

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

Матрицы: элементы главной диагонали поменять местами с максимальным элементом в каждой строке - C++
Дана квадратичная матрица.элементы главной диагонали должны поменяться местами с максимальным элементом в каждой строчке... вроде всё...

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

Поменять местами строку с максимальным и минимальным элементом матрицы - C++
Задана матрица размером NxN. Поменять местами строку с максимальным элементом матрицы и строку с минимальным эле-ментом.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.05.2017, 03:35
Ответ Создать тему
Опции темы

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