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

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

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

Сдвиг - C++

17.02.2010, 14:32. Просмотров 1265. Ответов 23
Метки нет (Все метки)

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++
unsigned int x = 0x1234ABCD; // число которое двигать надо unsigned int v = 1; // на сколько двигать x = (x &gt;&gt; v*4) | (x &lt;&lt; (32-v*4));...

Битовый сдвиг - C++
Вот в чем вопрос: int x = 2; int y; y = (x &gt;&gt; 32); cout &lt;&lt; x &lt;&lt; &quot; &quot; &lt;&lt; y; Должен быть выход 2 0, а на экран...

Циклический сдвиг - C++
Здравствуйте помогите пожалуйста мне надо все нечетные строки матрицы сдвинуть циклически на К элементов влево. Знаю тут ужас но не...

Сдвиг курсором - C++
Ребят чё то не пойму как вот с такой прогой справиться, писал что то писал и так не дошел.. вот само задание Написать программу,...

Побитовый сдвиг - C++
Непонятна часть программы с 24 по 45 строку. Помогите разобраться, пожалуйста. #include &lt;iostream&gt; using namespace std; const int...

Битовый сдвиг в if() - C++
Обясните как работает такой код:void swap(int &amp;a, int &amp;b) { int temp = a; a = b; b = temp; } void...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CoffeeTurbo
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 17
17.02.2010, 23:28  [ТС]     Сдвиг #21
Цитата Сообщение от insideone Посмотреть сообщение
Да, тот код что я присылал послденим выдает такой результат при таких входных данных. И при других входных данных значения получались правильные. Или у меня галлюцинации начались?
всё это у меня галлюцинации попутно решал ещё и всё в кажу смелось =)))))
insideone
Модератор
Автор FAQ
3638 / 916 / 49
Регистрация: 10.01.2010
Сообщений: 2,468
17.02.2010, 23:33     Сдвиг #22
бывает главное что все правильно...
mirso
525 / 343 / 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++
Всем привет, делаю программу с помощью указателей но не знаю как тут быть:? помогите нужно отредактировать эту часть ...

10->2 + сдвиг+инвертация - C++
Народ пожалуйста подскажите есть ли у меня ошибки в лабе Написать программу на языке C++, читающую со стандартного ввода 4 деся- ...

Сдвиг перестановки. - C++
Думал алгоритм решения таков : находим минимальный элемент ставим его на первое место и сдвигаем последовательность. Но такое решение...

Побитовый сдвиг - C++
есть допустим переменная unsigned char data = 0b10111011; Как можно сделать за 4 шага по битовый сдвиг на двух половинах как...


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

Или воспользуйтесь поиском по форуму:
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
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     Сдвиг
Ответ Создать тему
Опции темы

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