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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
mika_vazovski
0 / 0 / 0
Регистрация: 01.02.2012
Сообщений: 5
#1

Сдвиг элементов матрицы - C++

05.02.2012, 16:08. Просмотров 1547. Ответов 5
Метки нет (Все метки)

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

я сделала матрицу 5х5, но почему-то когда запускаю программу, независимо от выбранного направления сдвига, программа сдвигает строки, но никак не столбцы. Ниже привожу код, подскажите пожалуйста, где я ошиблась.

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
// Двумерный массив.cpp: определяет точку входа для консольного приложения.
//
 
#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 (i=0; i<5; i++) // проход по столбцу
    {for (j=0; j<5; j++) //проход по стоке
        cout<< M[i][j]<<"   " ; // вывод массива
    cout<<endl;                //конец j-той строки
    }
    cout<<endl;
if (naprav==0);
   {for (i=0; i<5; i++)
     for (j=0; j<5; j++)
         Mas[i][j]=M[i][(j+n)%5];}
if (naprav==1);
   {for (j=0; j<5; j++)
     for (i=0; i<5; i++)
         Mas[i][j]=M[(i+n)%5][j];}
//else cout<<"неправильное направление сдвига\n";
    
 
for (i=0; i<5; i++) // проход по столбцу
    {for (j=0; j<5; j++) //проход по стоке
        cout<< Mas[i][j]<<"   " ; // вывод массива
    cout<<endl;                //конец j-той строки
    }
 
    _getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2012, 16:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сдвиг элементов матрицы (C++):

Осуществить циклический сдвиг элементов прямоугольной матрицы - C++
Помогите решить задачки. Я не оть программирую, а делать над... (С++) 1) Вычислить 12 значений функции y=ax^2+bx+c на отрезке ,...

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

Осуществить циклический сдвиг элементов квадратной матрицы - C++
(Console Application) Осуществить циклический сдвиг элементов квадратной матрицы размером М х N вправо на k элементов таким образом:...

Циклический сдвиг элементов матрицы по кругу на число T - C++
Доброго времени суток. Искал, искал так и не нашел что-нибудь по сдвигу двумерного массива. Нужен циклический сдвиг по кругу на число T;...

Что такое циклический сдвиг элементов матрицы - C++
подробно своими словами пожалуйста)

Циклический сдвиг прямоугольной матрицы на n элементов вправо - C++
Подскажите пожалуйста в чем ошибка. Надо осуществить циклический сдвиг прямоугольной матрицы на n элементов вправо. int main() { ...

5
IFree Host
Заблокирован
05.02.2012, 16:15 #2
mika_vazovski, Ну, поменяй i и j местами.
1
mika_vazovski
0 / 0 / 0
Регистрация: 01.02.2012
Сообщений: 5
05.02.2012, 16:27  [ТС] #3
IFree Host сейчас попробую

Добавлено через 4 минуты
IFree Host спасибо!!! теперь все правильно работает
0
IFree Host
Заблокирован
05.02.2012, 16:28 #4
mika_vazovski, Удачи!
0
mika_vazovski
0 / 0 / 0
Регистрация: 01.02.2012
Сообщений: 5
05.02.2012, 16:40  [ТС] #5
она без сомнения пригодится
0
Roguen
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 7
08.04.2013, 17:57 #6
можешь скинуть правильный код? у меня такое же задание, ничего не получается
0
08.04.2013, 17:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2013, 17:57
Привет! Вот еще темы с ответами:

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

Как осуществить циклический сдвиг элементов квадратной матрицы - C++
Помогите осуществить циклический сдвиг элементов квадратной матрицы размерности MXN вправо на k элементов таким образом: элементы 1-й...

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

Выполнить циклический сдвиг элементов квадратной матрицы, используя локальные и динамические массивы - C++
Осуществить циклический сдвиг элементов квадратной матрицы размерность M x N вправо на k элементов таким образом: элементы первой строки...


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

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

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