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

Дана целочисленная матрица размерности n x m. обеспечить сдвиг столбцов вправо или влево в зависимости от знака вводимого числа сдвигов k - C++

Восстановить пароль Регистрация
 
Эмиль95
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 33
06.03.2014, 22:33     Дана целочисленная матрица размерности n x m. обеспечить сдвиг столбцов вправо или влево в зависимости от знака вводимого числа сдвигов k #1
Здравствуйте помогите с задачей по с++.

Дана целочисленная матрица размерности n x m. обеспечить сдвиг столбцов вправо или влево в зависимости от знака вводимого числа сдвигов k.

заранее спасибо)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2014, 22:33     Дана целочисленная матрица размерности n x m. обеспечить сдвиг столбцов вправо или влево в зависимости от знака вводимого числа сдвигов k
Посмотрите здесь:

Сдвиг столбцов влево циклически - матрица C++
C++ дана целочисленная прямоугольная матрица. Определить количество столбцов,содержащих хотя бы один нулевой элемент.
Циклический сдвиг массива влево и вправо C++
C++ Дана целочисленная матрица. Найти номер первого из ее столбцов, содержащих минимальное количество одинаковых элементов
C++ Дана целочисленная прямоугольная матрица.Определить номера строк и столбцов всех седловых точек матрицы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
06.03.2014, 23:10     Дана целочисленная матрица размерности n x m. обеспечить сдвиг столбцов вправо или влево в зависимости от знака вводимого числа сдвигов k #2
Эмиль95, если все правильно написал, то будет вот так

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
void swap_array(int **array, int n, int m, int step) //ссылка на массив, число строк, число столбцов, величина сдвига k(step)
{
    if (step > 0)
    {
        for (int i = 0; i < step; i++)
        {
            for (int j = 0; j < n; j++)
            {
                int temp = array[j][m-1];
                for (int k = m-1; k > 0; k--) array[j][k] = array[j][k-1];
                array[j][0] = temp;
            }
        }
    }
    else if (step < 0)
    {
        for (int i = step; i > 0; i--)
        {
            for (int j = 0; j < n; j++)
            {
                int temp = array[j][0];
                for (int k = 0; k < m-1; k++) array[j][k] = array[j][k+1];
                array[j][m-1] = temp;
            }
        }
    }
}
проверьте, работает ли
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,056
06.03.2014, 23:19     Дана целочисленная матрица размерности n x m. обеспечить сдвиг столбцов вправо или влево в зависимости от знака вводимого числа сдвигов k #3
TenGen,
у тебя циклический сдвиг а ТС не сказал какой
и это не самое быстрое решение для циклического сдвига
посмотри
Функция сдвига массива
предложено четыре алгоритма
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
06.03.2014, 23:37     Дана целочисленная матрица размерности n x m. обеспечить сдвиг столбцов вправо или влево в зависимости от знака вводимого числа сдвигов k #4
ValeryS, он же написал, сдвиг столбцов на k, а направление зависит от знака. За ссылку благодарю
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,056
07.03.2014, 00:31     Дана целочисленная матрица размерности n x m. обеспечить сдвиг столбцов вправо или влево в зависимости от знака вводимого числа сдвигов k #5
Цитата Сообщение от TenGen Посмотреть сообщение
ValeryS, он же написал, сдвиг столбцов на k,
ну а какой сдвиг
есть циклический когда цифры из конца попадают в начало
есть логический когда сдвигают а на конце 0
есть арифметический в конце остается прежнее значение
пример
1234 сдвиг на 1 вправо
4123 циклический
0123 логический
1123 арифметический

так вот ТС не сказал какой, видать сам не в курсе
Цитата Сообщение от TenGen Посмотреть сообщение
За ссылку благодарю
Да не за что погуляй по форуму еще кучу идей и алгоритмов найдешь
например
Что делает данный код и зачем такое кому-нибудь может понадобиться?
или вот
http://www.cyberforum.ru/cpp-experts/thread153746.html
Yandex
Объявления
07.03.2014, 00:31     Дана целочисленная матрица размерности n x m. обеспечить сдвиг столбцов вправо или влево в зависимости от знака вводимого числа сдвигов k
Ответ Создать тему
Опции темы

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