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

Поменять столбцы матрицы местами (четный и нечетный) - C++

Восстановить пароль Регистрация
 
triish
1 / 1 / 0
Регистрация: 16.01.2014
Сообщений: 44
26.01.2014, 21:40     Поменять столбцы матрицы местами (четный и нечетный) #1
нужно сделать программу, которая будет менять столбцы местами(четный и нечетный), если у них будут отсутствовать элементы со значением разности максимального и минимального элементов матрицы.

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

как сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2014, 21:40     Поменять столбцы матрицы местами (четный и нечетный)
Посмотрите здесь:

Поменять местами строки и столбцы матрицы C++
Поменять местами столбцы матрицы C++
Поменять местами столбцы матрицы с номерами K1 и K2 C++
C++ Поменять местами столбцы матрицы
Поменять местами строки столбцы матрицы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
26.01.2014, 21:42     Поменять столбцы матрицы местами (четный и нечетный) #2
Цитата Сообщение от triish Посмотреть сообщение
не знаю как написать функцию сдвига столбцов
зачем сдвигать если тебе нужно поменять элементы просто местами?
triish
1 / 1 / 0
Регистрация: 16.01.2014
Сообщений: 44
26.01.2014, 21:44  [ТС]     Поменять столбцы матрицы местами (четный и нечетный) #3
преподаватель невероятно придирчив.
ему нужна универсальная программа. и если в условии сказано поменять столбцы, то надо прописывать именно что бы столбцы менял. а не просто взял и поменял.
Цитата Сообщение от cooller_94 Посмотреть сообщение
зачем сдвигать если тебе нужно поменять элементы просто местами?
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
26.01.2014, 21:48     Поменять столбцы матрицы местами (четный и нечетный) #4
triish, препода можно понять.
нельзя так просто взять и поменять столбцы
triish
1 / 1 / 0
Регистрация: 16.01.2014
Сообщений: 44
27.01.2014, 00:09  [ТС]     Поменять столбцы матрицы местами (четный и нечетный) #5
а как тогда можно?
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
triish, препода можно понять.
нельзя так просто взять и поменять столбцы
Добавлено через 2 часа 8 минут

так и никто не поможет?
vovacreme
-16 / 61 / 13
Регистрация: 14.01.2014
Сообщений: 145
27.01.2014, 00:53     Поменять столбцы матрицы местами (четный и нечетный) #6
Прям так и сказал преподаватель?
Цитата Сообщение от triish Посмотреть сообщение
надо прописывать именно что бы столбцы менял. а не просто взял и поменял.
triish
1 / 1 / 0
Регистрация: 16.01.2014
Сообщений: 44
27.01.2014, 01:07  [ТС]     Поменять столбцы матрицы местами (четный и нечетный) #7
ага.

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

Цитата Сообщение от vovacreme Посмотреть сообщение
Прям так и сказал преподаватель?
vovacreme
-16 / 61 / 13
Регистрация: 14.01.2014
Сообщений: 145
27.01.2014, 02:22     Поменять столбцы матрицы местами (четный и нечетный) #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
74
75
76
77
78
79
80
81
#include <iostream>
#include <ctime> 
#include <iomanip>
 
using namespace std;
 
int findMaxSubMin(int ** arr, int r, int c)
{
    int MIN = arr[0][0], MAX = arr[0][0];
    for (int i = 0; i < r; ++i)
    {
        for (int j = 0; j < c; ++j)
        {
            if (arr[i][j] < MIN)
                MIN = arr[i][j];
            if (arr[i][j] > MAX)
                MAX = arr[i][j];
        }
    }
    return MAX - MIN;
}
 
bool existMaxSubMin(int * arr, int s, int val)
{
    for (int j = 0; j < s; ++j)
        if (arr[j] == val)
            return true;
    return false;
}
 
void showMatrix(int ** arr, int r, int c)
{
    for (int i = 0; i < r; ++i)
    {
        for (int j = 0; j < c; ++j)
            cout << setw(5) << arr[i][j];
        cout << endl;
    }
}
 
int main()
{
    srand(time(0));
    cout << "enter number of rows: ";
    int rows;
    cin >> rows;
    cout << "enter number of columns: ";
    int col;
    cin >> col;
    int ** arr = new int * [rows];
    for (int i = 0; i < rows; i++)
        arr[i] = new int[col];
    for (int i = 0; i < rows; ++i)
        for (int j = 0; j < col; ++j)
            arr[i][j] = 1 + rand() % 10;
    cout << endl;
    showMatrix(arr, rows, col);
    int * curr_col = new int [rows];
    int * next_col = new int [rows];
    int max_sub_min = findMaxSubMin(arr, rows, col);
    for (int j = 0, k = 1; j < col && k < col; j += 2, k += 2)
    {
        for (int i = 0; i < rows; ++i)
        {
            curr_col[i] = arr[i][j];
            next_col[i] = arr[i][k];
        }
        if ( !existMaxSubMin(curr_col, rows, max_sub_min) && !existMaxSubMin(next_col, rows, max_sub_min) )
        {
            for (int i = 0; i < rows; ++i)
            {
                int tmp_val = arr[i][j];
                arr[i][j] = arr[i][k];
                arr[i][k] = tmp_val;
            }
        }
    }
    cout << endl;
    showMatrix(arr, rows, col);
    system("pause");
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2014, 01:39     Поменять столбцы матрицы местами (четный и нечетный)
Еще ссылки по теме:

Поменять местами строки и столбцы матрицы C++
C++ Поменять местами элементы массива которые имеют четный и нечетный индексы
C++ Поменять местами строки и столбцы матрицы

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

Или воспользуйтесь поиском по форуму:
triish
1 / 1 / 0
Регистрация: 16.01.2014
Сообщений: 44
28.01.2014, 01:39  [ТС]     Поменять столбцы матрицы местами (четный и нечетный) #9
Цитата Сообщение от vovacreme Посмотреть сообщение
Если я правильно понял задание, то:
спасибо большое. посмотрю позже рабочий ли код.
Yandex
Объявления
28.01.2014, 01:39     Поменять столбцы матрицы местами (четный и нечетный)
Ответ Создать тему
Опции темы

Текущее время: 00:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru