58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 924

Поменять местами первую строку и строку с минимальным элементом

12.01.2017, 21:30. Показов 1524. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем нужно найти минимальный элемент, запомнить номер этой строки и поменять эту строку с первой (нулевой). Решил попробовать поменять не поэлементно, а с помощью указателей и что то не получается(
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
#include<iostream>
using namespace std;
 
void show_array(int *m[], unsigned rows, unsigned cols)
{
    cout << endl;
    for (size_t i = 0; i < rows; i++)
    {
        for (size_t j = 0; j < cols; j++)
            cout << m[i][j] << " ";
        cout << endl;
    }
        
}
 
void swap_min(int *m[], unsigned rows, unsigned cols)
{
    int min_elem = m[0][0];
    int min_str = 0;
    for (size_t i = 0; i < rows; i++)
        for (size_t j = 0; j < cols; j++)
        {
            if (m[i][j] < min_elem)
            {
                min_elem = m[i][j];
                min_str = i;
            }
                
        }
    //
    
    int** col = m;
    m = m + min_str;
    (m + min_str) = col;
 
    show_array(m, rows, cols);
    
}
 
int main()
{
    unsigned rows, cols;
    cin >> rows; cin >> cols;
    int** M = new int* [rows];
    for (size_t i = 0; i < rows; i++)
        M[i] = new int[cols];
 
    for (size_t i = 0; i < rows; i++)
        for (size_t j = 0; j < cols; j++)
            cin >> M[i][j];
 
    swap_min(M, rows, cols);
    //Delete
    for (int i = 0; i < rows; i++)
        delete[] M[i];
    delete[] M;
    system("pause");
    return 0;
}
Ругается на это: (m + min_str) = col;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.01.2017, 21:30
Ответы с готовыми решениями:

Поменять местами строку с максимальный элемент и строку с минимальным элементом матрицы
привет!я хотел бы попросить знающих людей написать программу на языке С!надо поменять местами рядок в котором есть максимальный элемент с...

Поменять местами строку матрицы с максимальным и минимальным элементом
Проблема такова: программа меняет местами строку с максимальным и минимальным элементом. Когда я пытаюсь присвоить минимальному и...

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

3
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
12.01.2017, 22:31
Senarist, не знаю нужно ли оно вам, но вот еще одно решение без указателей

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
#include <iostream>
 
using namespace std;
 
void MatrixInput(int** X, int N, int M)
{
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < M; j++)
        {
            cin >> X[i][j];
        }
    }
}
 
void MatrixOutput(int** X, int N, int M)
{
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < M; j++)
        {
            cout << X[i][j] << " ";
        }
        cout << endl;
    }
}
 
int main()
{
    int N, M, num, min;
    cout << "Введите размеры матрицы:" << endl;
    cout << "N = ";
    cin >> N;
    cout << "M = ";
    cin >> M;
    int** A = new int*[N];
    for (int i = 0; i < N; i++)
    {
        A[i] = new int[M];
    }
    cout << "Введите матрицу:" << endl;
    MatrixInput(A, N, M);
    min = A[0][0];
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < M; j++)
        {
            if (A[i][j] < min)
            {
                min = A[i][j];
                num = i;
                break;
            }
        }
    }
    for (int j = 0; j < M; j++)
    {
        swap(A[0][j], A[num][j]);
    }
    cout << "Матрица после обмена:" << endl;
    MatrixOutput(A, N, M);
    for (int i = 0; i < N; i++)
    {
        delete[] A[i];
    }
    system("pause");
    return 0;
}
0
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 924
13.01.2017, 11:52  [ТС]
Fixer_84 разобрался вроде с указателями. А ваш вариант не верно работает, break там не нужен )
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
13.01.2017, 16:47
Senarist, да. Вы правы. Я поставил break по ошибке.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.01.2017, 16:47
Помогаю со студенческими работами здесь

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

Поменять местами первую строку и строку сумма элементов которой минимальна
Дан двумерный массив размера NxM. Поменять местами первую строку и строку сумма элементов которой минимальна. Вывести полученную матрицу на...

Матрицы: поменять местами первую строку и строку, содержащую максимальный элемент
1)В матрице поменять местами 1 строку и строку содержащие последнее вхождение элемента максимального где максимальный- максимальный элем...

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

Поменять местами первую строку матрицы и строку, содержащую максимальный отрицательный элемент
:cry: Ребята выручайте. Без вас мне край. У меня не было С++ ,но мне надо сделать задачку и отбодаться:-[ напишите по возможности с...


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

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

Новые блоги и статьи
Создаем RESTful API с Laravel
Jason-Webb 28.04.2025
REST (Representational State Transfer) — это архитектурный стиль, который определяет набор принципов для создания веб-сервисов. Этот подход к построению API стал стандартом де-факто в современной. . .
Дженерики в C# - продвинутые техники
stackOverflow 28.04.2025
История дженериков началась с простой идеи — создать механизм для разработки типобезопасного кода без потери производительности. До их появления программисты использовали неуклюжие преобразования. . .
Тестирование в Python: PyTest, Mock и лучшие практики TDD
py-thonny 28.04.2025
Тестирование кода играет весомую роль в жизненном цикле разработки программного обеспечения. Для разработчиков Python существует богатый выбор инструментов, позволяющих создавать надёжные и. . .
Работа с PDF в Java с iText
Javaican 28.04.2025
Среди всех форматов PDF (Portable Document Format) заслуженно занимает особое место. Этот формат, созданный компанией Adobe, превратился в универсальный стандарт для обмена документами, не зависящий. . .
Динамические массивы в C++ - создание и использование
NullReferenced 27.04.2025
Динамические массивы представляют собой один из фундаментальных инструментов программирования на C++, позволяющий создавать структуры данных, размер которых определяется во время выполнения. . .
Асинхронный JavaScript: Промисы, Async/Await и Fetch API
Reangularity 27.04.2025
Пользователь заходит на веб-страницу, нажимает кнопку и. . . ничего не происходит. Сайт словно замер. Через несколько секунд всё внезапно оживает, но пользователь уже успел закрыть вкладку. Знакомая. . .
Management on GitLab and repository management in Visual Studio code
jigi33 27.04.2025
- repo management on GitLab - CI/ CD in GitLab - VCS repository management in Visual Studio code (see attachments)
Kanban или Scrum - что выбрать?
EggHead 27.04.2025
Kanban и Scrum — уже много лет удерживают лидирующие позиции среди гибких подходов. Руководители проектов и команды разработчиков то и дело сталкиваются с дилеммой: какой из этих двух методов выбрать. . .
Кастомные Middleware на C# в ASP.NET Core
UnmanagedCoder 27.04.2025
Разработка веб-приложений сегодня мало напоминает монолитное программирование прошлых лет. На смену громоздким блокам кода пришла модульная архитектура, где каждый компонент выполняет строго. . .
Анализ и линтинг кода JavaScript: ESLint, Prettier и JSHint
run.dev 26.04.2025
JavaScript прошёл долгий путь от простого языка для анимации веб-страниц до основы современной веб-разработки. С ростом сложности приложений, увеличением кодовых баз и масштабированием команд. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru