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

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

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

Осуществить сдвиг элементов матрицы на указанное количество позиций влево - C++

13.12.2015, 14:45. Просмотров 202. Ответов 1
Метки нет (Все метки)

Дана целочисленная прямоугольная матрица. Осуществить сдвиг элементов матрицы на указанное количество влево. Начальную и конечную матрицу вывести на экран.

Вот, я написал код, и не могу понять как сделать, чтобы был сдвиг влево, а не вправо:
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>
#include <conio.h>//для нажатия клавиши
#include <clocale>//библиотека для кодировки
#include <math.h>
#include <stdio.h>
using namespace std;//использовать пространство имен (чтобы не писать std)
 
 
int _tmain(int argc, _TCHAR* argv [])
{
    setlocale(LC_CTYPE, "Russian");//поддержка русской кодировки
    int M[5][5] = { 2, 6, 4, 10, 5, 7, 0, 9, 13, 4, 6, 5, 8, 19, 3, 7, 2, 8, 23, 1, 8, 3, 2, 19, 7 };
    int Mas[5][5] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
    int i, j, n, naprav;
 
    cout << "\nвведите направление сдвига(0 'вправо' или 1 'вниз')\n";
    cin >> naprav;
    cout << "\nвведите число символов, на которое осуществляется сдвиг\n";
    cin >> n;
    cout << endl;
    i = 0;
    j = 0;
 
    for (j = 0; j<5; j++) // проход по столбцу
    {
        for (i = 0; i<5; i++) //проход по стоке
            cout << M[i][j] << "   "; // вывод массива
        cout << endl;                //конец j-той строки
    }
    cout << endl;
    if (naprav == 0);
    {for (j = 0; j<5; j++)
        for (i = 0; i<5; i++)
            Mas[i][j] = M[i][(j + n) % 5]; }
    if (naprav == 1);
    {for (i = 0; i<5; i++)
        for (j = 0; j<5; j++)
            Mas[i][j] = M[(i + n) % 5][j]; }
    //else cout<<"неправильное направление сдвига\n";
 
 
    for (j = 0; j<5; j++) // проход по столбцу
    {
        for (i = 0; i<5; i++) //проход по стоке
            cout << Mas[i][j] << "   "; // вывод массива
        cout << endl;                //конец j-той строки
    }
 
    _getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2015, 14:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Осуществить сдвиг элементов матрицы на указанное количество позиций влево (C++):

Осуществить сдвиг элементов массива влево на K позиций - C++
Дан массив размера N и целое число K (1 ≤ K &lt; N). Осуществить сдвиг элементов массива влево на K позиций (при этом AN перейдет в AN–K, AN–1...

Осуществить циклический сдвиг элементов массива влево на k позиций - C++
Дан массив размера N и число k (0 &lt; k &lt; 5, k &lt; N). Осуществить циклический сдвиг элементов массива влево на k позиций. Гуглю весь день,...

Осуществить сдвиг влево/ вправо элементов - C++
Разработать подпрограммы (функции или процедуры) для следующих алгоритмов над массивом. Входным параметром подпрограмм является...

Осуществить сдвиг элементов массива вправо на k позиций - C++
Всем привет , помогите пожалуйста решить эту задачу на языке Си 9. Дан целочисленный массив размера N. Осуществить сдвиг вправо на k...

Осуществить циклический сдвиг элементов массива вправо на k позиций - C++
Решаю задачи на сервере одном, задание было &quot;Дан массив размера N ≥ 2 и число k (0 &lt; k &lt; N). Осуществить циклический сдвиг элементов...

Осуществить циклический сдвиг элементов одномерного массива на k позиций - C++
работает правильно только если k=1 если больше то сдвиг делает правильно, но когда на место их переносит числа путает их, что не так? ...

1
Dimension
Dimension
569 / 438 / 135
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
13.12.2015, 15:34 #2
можете перевернуть массив ,сделать сдвиг ,затем еще раз перевернуть
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2015, 15:34
Привет! Вот еще темы с ответами:

Осуществить циклический сдвиг элементов массива влево1|вправо2 на k позиций - C++
Добрый день ребят, очень нужна Ваша помощь. Помогите решить задачу. Дан массив размера N и число k (0&lt;k&lt;5, k&lt;N). Осуществить...

Осуществить циклический сдвиг элементов массива влево на одну позицию - C++
Помогите, пожалуйста, решить программы на си++, если не решу мне хана, заранее спасибо: Дан массив размера N. Осуществить циклический...

Выполнить циклический сдвиг элементов каждой строки матрицы на количество позиций, равное номеру строки - C++
Дана матрица целых чисел X(5х8). Выполнить циклический сдвиг элементов каждой строки матрицы на количество позиций, равное номеру строки....

Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k – индекс максимального элемента - C++
Помогите пожалуйста решить эту задачу, Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций,...


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

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

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