Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 02.11.2015
Сообщений: 39

Поменять местами строки

10.09.2016, 19:09. Показов 1626. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня присутствует код в котором столбец с минимальным в строке "k" переставить c столбцом "k".
Беда в том что у меня считывает диагональ, а не строку.
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
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
    setlocale(0, "");
    int const n = 3;
    int mas[n][n];
    for (int i = 0; i<n; i++)
    {
        for (int j = 0; j<n; j++)
        {
            mas[i][j] = rand() % 50;
            cout << mas[i][j] << "\t";
        }
        cout << endl;
    }
    int min = mas[0][0];
    int k;
    for (int i = 0; i<n; i++)
    {
        int j = i;
        if (mas[i][j]<min)
        {
            min = mas[i][j];
            k = i;
        }
    }
    cout << "минимальное число в строке k = " << min << endl;
    int m;
    cout << "c какой строкой поменять строку k ?\n";
    cin >> m;
    for (int i = 0; i <= k; i++)
    {
        if (i == k)
        {
            for (int j = 0; j<n; j++)
            {
                swap(mas[k][j], mas[m-1][j]);
            }
        }
    }
    for (int i = 0; i<n; i++)
    {
        for (int j = 0; j<n; j++)
        {
            cout << mas[i][j] << "\t";
        }
        cout << endl;
    }
    system("pause");
}
нид хелп
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.09.2016, 19:09
Ответы с готовыми решениями:

Поменять местами максимальный элемент каждой строки с первым элементом соответствующей строки
Всем привет помогите применить указатели в программах. Кода написала, а вот указателями пользоваться не могу( 2)Задана матрица С(5,5)....

Поменять местами максимальный элемент каждой строки с первым элементом соответствующей строки
Задана матрица С(5,5). Поменять местами максимальный элемент каждой строки с первым элементом соответствующей строки. решить пример тремя...

Поменять местами максимальный элемент каждой строки матрицы с первым элементом строки
Написать функцию, которая меняет местами максимальный элемент каждой строки матрицы С(5,5) с первым элементом соответствующей строки.

9
 Аватар для SW Developer
97 / 93 / 81
Регистрация: 10.01.2016
Сообщений: 663
Записей в блоге: 13
10.09.2016, 22:00
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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
    setlocale(0, "");
    srand(time(NULL));
 
    int const n = 3;
    int mas[n][n];
    for (int i = 0; i<n; i++)
    {
        for (int j = 0; j<n; j++)
        {
            mas[i][j] = rand() % 50;
            cout << mas[i][j] << "\t";
        }
        cout << endl;
    }
    int min = mas[0][0];
    int k;
    for (int i = 0; i<n; i++)
    {
        for (int j=1; j < n; j++)
            if (mas[i][j]<min)
        {
            min = mas[i][j];
            k = i;
        }
    }
    cout << "минимальное число в " << k+1 << " строке = " << min << endl;
    int m;
    cout << "c какой строкой поменять " << k+1 << " строку?\n";
    cin >> m;
    for (int i = 0; i <= k; i++)
    {
        if (i == k)
        {
            for (int j = 0; j<n; j++)
            {
                swap(mas[k][j], mas[m-1][j]);
            }
        }
    }
    for (int i = 0; i<n; i++)
    {
        for (int j = 0; j<n; j++)
        {
            cout << mas[i][j] << "\t";
        }
        cout << endl;
    }
    system("pause");
}
1
0 / 0 / 0
Регистрация: 02.11.2015
Сообщений: 39
10.09.2016, 22:12  [ТС]
Цитата Сообщение от silver2s7 Посмотреть сообщение
переставить c столбцом "k".
Беда в том что у меня считывает диагональ, а не строку.
SW Developer, спасибо, все верно, но я пока вник в задание понял что оно вообще не такое)
смысл состоит в том, что массив должен заполняться со случайным числом "К", и столбец с минимальным числом( в строке с "К") поменять со столбцом с "К".
0
 Аватар для SW Developer
97 / 93 / 81
Регистрация: 10.01.2016
Сообщений: 663
Записей в блоге: 13
10.09.2016, 22:45
Что-то вообще какое-то условие уж больно мудреное! )))
0
0 / 0 / 0
Регистрация: 02.11.2015
Сообщений: 39
10.09.2016, 22:46  [ТС]
SW Developer, я полностью с этим согласен, вот и полез за помощью.
0
0 / 0 / 0
Регистрация: 02.11.2015
Сообщений: 39
13.09.2016, 13:34  [ТС]
тема еще актуальна, ответа так и не нашел

Добавлено через 20 часов 3 минуты
Выложу еще раз полное задание. Может я сложно пояснил.
Задана матрица размером N *N и число К (1<К<N). Столбец с минимальным по модулю элементом в К-й строке переставить с К-м столбцом.
0
 Аватар для SW Developer
97 / 93 / 81
Регистрация: 10.01.2016
Сообщений: 663
Записей в блоге: 13
13.09.2016, 23:33
Теперь стало понятнее: вводишь число К, находишь в строке под номером К минимальный элемент по модулю, запоминаешь номер столбца (номер элемента в строке) и делаешь перестановку этого столбца со столбцом К.
0
0 / 0 / 0
Регистрация: 02.11.2015
Сообщений: 39
16.09.2016, 16:24  [ТС]
SW Developer, все также непонятно что с кодом
0
 Аватар для SW Developer
97 / 93 / 81
Регистрация: 10.01.2016
Сообщений: 663
Записей в блоге: 13
16.09.2016, 21:46
Лучший ответ Сообщение было отмечено silver2s7 как решение

Решение

Вечером постараюсь посмотреть, что можно сделать.

Добавлено через 5 часов 8 минут
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
#include <iostream>
#include <conio.h>
#include <cmath>
#include <ctime>        //для генератора случайных чисел
using namespace std;
 
void print_array(int **a, const int nstr, const int nstb);  //печать массива
 
int main()
{
    srand((int) time(NULL));        //для генератора случайных чисел
 
    cout << "N = ";
    int N;
    cin >> N;
    int **a, i, j;
    //Формирование матрицы а
    a = new int* [N];
    for (i = 0; i < N; i++)
        a[i] = new int [N];
    for (i = 0; i < N; i++)
        for (j = 0; j < N; j++)
            a[i][j] = rand() % 50 - 25;     //генератор случайных чисел
    
    print_array(a, N, N);
 
    int K;
    //проверка выполнения условия ввода числа К
    bool key;
    do
    {
        cout << endl << "K = ";
        cin >> K;
        key = K > 1 && K < N;
    } while (!key);
 
    //Находим минимальный элемент по модулю в строке под номером К
    int min; 
    int kmin = 0;
    min = a[K][0];
    for (size_t i = 1; i < N; i++)
    {
        if (abs(a[K][i]) < abs(min))    //сравниваем по модулю
        {
            min = a[K][i];
            kmin = i;                   //запоминаем номер столбца
        }
    }
    cout << endl << min << "\t" << kmin << endl << endl;        //контроль
 
    //Меняем столбцы местами
    for (size_t i = 0; i < N; i++)
    {
        int temp;
        temp = a[i][K];
        a[i][K] = a[i][kmin];
        a[i][kmin] = temp;
    }
 
    print_array(a, N, N);
 
    _getch();
}
 
void print_array(int **a, const int nstr, const int nstb)
{
    for (size_t i = 0; i < nstr; i++)
    {
        for (size_t j = 0; j < nstb; j++)
            cout << a[i][j] << "\t";
        cout << endl;
    }
}
1
0 / 0 / 0
Регистрация: 02.11.2015
Сообщений: 39
17.09.2016, 13:02  [ТС]
SW Developer, большое спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.09.2016, 13:02
Помогаю со студенческими работами здесь

Если длина введенной строки кратна 4, первую часть строки поменять местами со второй
Если длина введенной строки кратна 4, первую часть строки поменять местами со второй.

В функции, для каждой строки матрицы M[n][k], максимальный элемент поменять местами с первым элементом строки
В функции, для каждой строки матрицы M, максимальный элемент поменять местами с первым элементом строки. Дополнительных массивов и матриц...

Задана матрица С(5,5). Поменять местами максимальный элемент каждой строки с первым элементом соответствующей строки
Задана матрица С(5,5). Поменять местами максимальный элемент каждой строки с первым элементом соответствующей строки.

Поменять местами строки
Задание: изменить заданную прямоугольную матрицу так, чтобы на первом месте стояла строка с максимальной, а на последнем с минимальной...

Поменять строки местами
Меня интересует такой вопрос, вот это неправильный отрывок кода. ... while (a!=NULL) { puts(a); a=strtok(NULL,&quot;...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru