3 / 3 / 0
Регистрация: 10.11.2009
Сообщений: 102
1

Циклический сдвиг прямоугольной матрицы на n элементов вправо

11.03.2011, 00:10. Показов 2547. Ответов 5
Метки нет (Все метки)

Подскажите пожалуйста в чем ошибка. Надо осуществить циклический сдвиг прямоугольной матрицы на n элементов вправо.

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
int main()
{
    setlocale( LC_ALL,"Russian" );
    int mas[k][m], temp, number;
    cout << "Введите данные массива: ";
    for (int i=0; i<k; i++)//ввод данных массива
    {
        for (int j=0; j<m;j++)
        {
            cin >> mas[i][j];
        }
    }
 
    cout << "Введите количество сдвигов: ";
    cin >> number;
    
    //сдвиг элементов вправо
    while (number)
    {
        for (int i = 0; i < k; i++)
        {
            temp = mas[i][m];
            for (int j = 0; j < (m-1); j++)
            {
                mas[i][m - j] = mas[i][m-j-1];
            }
            mas[i][0] = temp;
        }
        number--;
    }
 
 
    for (int i=0; i<k; i++)//вывод
    {
        cout << "\n";
        for (int j=0; j<m;j++)
        {
            cout <<  mas[i][j] << " ";
        }
    }
 
 
 
    return 0;
}
 Комментарий модератора 
Именуйте темы осмысленно. Название темы должно максимально полно отражать ее содержание.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2011, 00:10
Ответы с готовыми решениями:

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

Циклический сдвиг элементов прямоугольной матрицы
Мне нужно сделать такую программу: Осуществить циклический сдвиг элементов прямоугольной матрицы...

Осуществить циклический сдвиг элементов прямоугольной матрицы
Помогите решить задачки. Я не оть программирую, а делать над... (С++) 1) Вычислить 12 значений...

Осуществить циклический сдвиг элементов прямоугольной матрицы
Здравствуйте!!! Моя задача состоит в том: Осуществить циклический сдвиг элементов прямоугольной...

5
Заблокирован
11.03.2011, 01:21 2
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
#include <iostream>
#include <math.h>
#include <time.h>
#define k 4
#define m 5
using namespace std;
 
int main()
{
        setlocale( LC_ALL,"Russian" );
        srand(time(NULL));
        int mas[k][m], res[k][m], number, i , j;
             for (int i=0; i<k; i++)//ввод данных массива
              for (int j=0; j<m;j++)
                    mas[i][j]=rand()%10;
      
         for (i=0; i<k; i++)//вывод mas
        {       cout << "\n";
                for (j=0; j<m;j++)
                       cout<<mas[i][j] << " ";
         }
             
        cout << "Введите количество сдвигов: ";
        cin >> number;
        
        //сдвиг элементов вправо
              for (i = 0; i < k; i++)
                    for (j = 0; j < m; j++)
            res[i][(j+number)%(k+1)] = mas[i][j];
            
        for (i=0; i<k; i++)//вывод res
        {       cout << "\n";
                for (j=0; j<m;j++)
                       cout<<res[i][j] << "  ";
         }
 
 cin.get();
 return 0;
}
2
3 / 3 / 0
Регистрация: 10.11.2009
Сообщений: 102
11.03.2011, 21:28  [ТС] 3
Цитата Сообщение от IrineK Посмотреть сообщение
(j+number)%(k+1)
А что делает данная операция?)
0
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
11.03.2011, 21:54 4
WASAW, возвращает остаток от деления

j+number на k+1
0
3 / 3 / 0
Регистрация: 10.11.2009
Сообщений: 102
11.03.2011, 22:00  [ТС] 5
Я не правильно задал вопрос, почему там надо использовать такую конструкцию?)
0
Заблокирован
12.03.2011, 00:18 6
В строке 30 нужно:
C++
1
res[i][(j+number)%(m)] = mas[i][j];
чтоб работало с любыми m и k.
Извините за ошибку.

Добавлено через 56 минут
почему там надо использовать такую конструкцию?
Возьмите конкретный пример, пройдитесь по циклу и вы поймете - это несложно.
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.03.2011, 00:18
Помогаю со студенческими работами здесь

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

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

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

Произвести циклический сдвиг вправо элементов массива
Люди в Си++ дуб дубом. Помагите очень надо. Вот текст задачи. Ввести одномерный целочисленный...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru