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

Сдвиг - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
CoffeeTurbo
 Аватар для CoffeeTurbo
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 17
17.02.2010, 14:32     Сдвиг #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
#include <iostream>
#define N 3
#define M 3
using namespace std;
 
int main()
{
 
 
    int array1[N][M]={1,2,3,4,5,6,7,8,9};
 
    for(int i=0;i<N;i++)
    {
        for(int j=0;j<N;j++)
        {
            /*int buf=array1[N][M];   
            array1[0][0]=buf;*/       
            cout<<array1[i][j+1]<<"\t";
        }
        cout<<"\n";
    }
 
    return 0;
}
Код
сдвиг матрицы 
до               после
1 2 3            2 3 4
4 5 6            5 6 7
7 8 9            8 9 1
У меня проблема с присвоением первого значения исходной матрицы последнему значению преобразованной ...
Не могу понять куда в цикле вставлять буфер и обмен.
или как это можно сделать по другому
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2010, 14:32     Сдвиг
Посмотрите здесь:

C++ СДВИГ
Сдвиг курсором C++
C++ Циклический сдвиг.
C++ 10->2 + сдвиг+инвертация
C++ Сдвиг перестановки.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CoffeeTurbo
 Аватар для CoffeeTurbo
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 17
17.02.2010, 23:28  [ТС]     Сдвиг #21
Цитата Сообщение от insideone Посмотреть сообщение
Да, тот код что я присылал послденим выдает такой результат при таких входных данных. И при других входных данных значения получались правильные. Или у меня галлюцинации начались?
всё это у меня галлюцинации попутно решал ещё и всё в кажу смелось =)))))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
insideone
Модератор
Автор FAQ
 Аватар для insideone
3620 / 898 / 47
Регистрация: 10.01.2010
Сообщений: 2,423
17.02.2010, 23:33     Сдвиг #22
бывает главное что все правильно...
mirso
523 / 341 / 17
Регистрация: 05.04.2009
Сообщений: 709
18.02.2010, 23:38     Сдвиг #23
CoffeeTurbo,
Цитата Сообщение от CoffeeTurbo Посмотреть сообщение
сдвиг матрицы ... после
2 3 4
5 6 7
8 9 1
Цитата Сообщение от CoffeeTurbo Посмотреть сообщение
как это можно сделать по другому
с помощью std::rotate
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <algorithm>
 
//=================================================================== 
int main ()
{
    const size_t n = 3;
    int arr[n][n]={{1,2,3},{4,5,6},{7,8,9}};
    //--------------------------------------
    std::rotate ( *arr, *arr + 1, *arr + n*n );
    //--------------------------------------
    for ( size_t i = 0; i < n; ++i, std::cout << "\n" )
    for ( size_t j = 0; j < n; ++j                    )
    {      
        std::cout << arr[i][j] << ' ';
    }
    
    return 0;
}//==================================================================
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2010, 12:49     Сдвиг
Еще ссылки по теме:

C++ циклический сдвиг
сдвиг массива C++
C++ Битовый сдвиг C++

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

Или воспользуйтесь поиском по форуму:
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
19.02.2010, 12:49     Сдвиг #24
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
#include <iostream>
#define N 3
#define M 3
using namespace std;
 
int main()
{
 
 
        int array1[N][M]={1,2,3,4,5,6,7,8,9};
        int *ptr=&array1[0][0];
        int temp=*ptr;//Запоминаем 1-ый элемент
        for(size_t i=0; i<N*M-1; ++i)
            ptr[i]=ptr[i+1];//Сдвиг
        ptr[N*M-1]=temp;
        for(size_t i=0; i<N; ++i)
        {
            for(size_t j=0; j<M; ++j)
                cout << array1[i][j] << "\t";
            cout << endl;
        }
        system("pause");
        return 0;
}
Yandex
Объявления
19.02.2010, 12:49     Сдвиг
Ответ Создать тему
Опции темы

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