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

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

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

Задача с перестановкой столбцов в матрице - C++

02.12.2013, 22:20. Просмотров 394. Ответов 2
Метки нет (Все метки)

Ребят,всем привет,помогите пожалуйста с задачей.

. Дана целочисленная квадратная матрица порядка n. Переставить столбцы таким образом, чтобы первая строка оказалась упорядоченной по возрастанию. Матрицу сформировать из случайных чисел в диапазоне от –10 до 10.

Пробовал на парах решать,код там же оставил(
Завтра добавлю,пока,что советы пожалуйста,либо алгоритмы посоветуйте.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2013, 22:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача с перестановкой столбцов в матрице (C++):

Найти матрицу, получающуюся перестановкой столбцов - C++
Задание: Дана целочисленная матрица размера m х n. Найти матрицу, получающуюся перестановкой столбцов (первого с последним, второго с...

Упорядочить элементы главной диагонали перестановкой столбцов - C++
Упорядочить элементы главной диагонали квадратичной матрицы(n x n) перестановкой столбцов n=5. Элементы матрицы случайные действительные...

Перестановкой строк и столбцов минимальный элемент переместить в [1][1] - C++
Создана матрица 3x3 из произведения двух матриц.Методом перестановки строк и столбцов в конечной матрице 3x3 добейтесь, чтобы минимальный...

Функции. Найти матрицу, получающуюся перестановкой столбцов - C++
Дана целочисленная матрица размера m х n. Найти матрицу, получающуюся перестановкой столбцов (первого с последним, второго с предпоследним...

Найти матрицу, получающуюся перестановкой столбцов, используя указатель - C++
Дана целочисленная матрица размера m х n. Найти матрицу, получающуюся перестановкой столбцов (первого с последним, второго с предпоследним...

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

2
Tsin
716 / 461 / 132
Регистрация: 30.12.2012
Сообщений: 1,252
Записей в блоге: 2
Завершенные тесты: 3
02.12.2013, 23:15 #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
65
66
67
68
69
70
71
#include <iostream>
#include <random>
#include <time.h>
 
using namespace std;
 
int Random(int min, int max);
void SwapColumns(int **matrix, int a, int b);
void SortByFirstRow(int **matrix, int mSize);
void Print(int **matrix, int mSize);
 
int main()
{
    srand(time(NULL));
 
    int size = 0;
    int** M;
    
    cout << "Matrix size = ";
    cin >> size;
 
    M = new int*[size];
    for(int i = 0; i < size; i++)
        M[i] = new int[size];
 
    for(int i = 0; i < size; i++)
        for(int j = 0; j < size; j++)
            M[i][j] = Random(-10, 10);
 
    Print(M, size);
    SortByFirstRow(M, size);
    Print(M, size);
 
    system("pause");
    return 0;
}
 
int Random(int min, int max)
{
    return min + rand() % (max - min + 1);
}
 
void SwapColumns(int **matrix, int mSize, int a, int b)
{
    int temp;
    for(int j = 0; j < mSize; j++)
    {
        temp = matrix[j][a];
        matrix[j][a] = matrix[j][b];
        matrix[j][b] = temp;
    }
}
 
void SortByFirstRow(int **matrix, int mSize)
{
    for(int i = 0; i < mSize; i++)
        for(int j = i + 1; j < mSize; j++)
            if(matrix[0][i] > matrix[0][j])
                SwapColumns(matrix, mSize, i, j);
}
 
void Print(int **matrix, int mSize)
{
    cout << '\n';
    for(int i = 0; i < mSize; i++)
    {
        for(int j = 0; j < mSize; j++)
            cout << matrix[i][j] << " ";
        cout << '\n';
    }
}
1
PashaMorgan
0 / 0 / 0
Регистрация: 03.06.2013
Сообщений: 13
03.12.2013, 18:09  [ТС] #3
Цитата Сообщение от Tsin Посмотреть сообщение
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
#include <iostream>
#include <random>
#include <time.h>
 
using namespace std;
 
int Random(int min, int max);
void SwapColumns(int **matrix, int a, int b);
void SortByFirstRow(int **matrix, int mSize);
void Print(int **matrix, int mSize);
 
int main()
{
    srand(time(NULL));
 
    int size = 0;
    int** M;
    
    cout << "Matrix size = ";
    cin >> size;
 
    M = new int*[size];
    for(int i = 0; i < size; i++)
        M[i] = new int[size];
 
    for(int i = 0; i < size; i++)
        for(int j = 0; j < size; j++)
            M[i][j] = Random(-10, 10);
 
    Print(M, size);
    SortByFirstRow(M, size);
    Print(M, size);
 
    system("pause");
    return 0;
}
 
int Random(int min, int max)
{
    return min + rand() % (max - min + 1);
}
 
void SwapColumns(int **matrix, int mSize, int a, int b)
{
    int temp;
    for(int j = 0; j < mSize; j++)
    {
        temp = matrix[j][a];
        matrix[j][a] = matrix[j][b];
        matrix[j][b] = temp;
    }
}
 
void SortByFirstRow(int **matrix, int mSize)
{
    for(int i = 0; i < mSize; i++)
        for(int j = i + 1; j < mSize; j++)
            if(matrix[0][i] > matrix[0][j])
                SwapColumns(matrix, mSize, i, j);
}
 
void Print(int **matrix, int mSize)
{
    cout << '\n';
    for(int i = 0; i < mSize; i++)
    {
        for(int j = 0; j < mSize; j++)
            cout << matrix[i][j] << " ";
        cout << '\n';
    }
}
Огромное спасибо,благодаря вашему коду разобрался в своем решении.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2013, 18:09
Привет! Вот еще темы с ответами:

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

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

Задана вещественная матрица размером m×n. Найти наибольший элемент. Перестановкой строк и столбцов, добиться того, чтобы данный элемент оказался в вер - C++
Задана вещественная матрица размером m×n. Найти наибольший элемент. Перестановкой строк и столбцов, добиться того, чтобы данный элемент...

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


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

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

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