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

Сдвинуть элементы одномерного массива вправо на 1 элемент - C++

Восстановить пароль Регистрация
 
Bolbine84455
0 / 0 / 1
Регистрация: 12.03.2014
Сообщений: 266
14.04.2014, 18:38     Сдвинуть элементы одномерного массива вправо на 1 элемент #1
Кликните здесь для просмотра всего текста
C++ (Qt)
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
 #include <iostream>
 
using namespace std;
int logArr[2][31];
int iLastDay=30, k=1, tmp=0;
int main()
{
 
        for(int j=0; j<iLastDay; j++){
            logArr[0][j]=tmp;
            logArr[1][j]=tmp;
            tmp++;
        }
        for(int j=0; j<iLastDay; j++){
            cout<<logArr[0][j]<<"-"<<logArr[1][j]<<endl;
        }
    cout<<"-----"<<endl;
    tmp=0;
    while(tmp<k){
            for(int j=iLastDay; j>iLastDay; j--){
                logArr[0][j]=logArr[0][j-k];
                logArr[1][j]=logArr[1][j-k];
            }
    tmp++;
    }
        for(int j=0; j<iLastDay; j++){
            cout<<logArr[0][j]<<"-"<<logArr[1][j]<<endl;
        }
    return 0;
}

Вывод тот же самый. Уже не соображаю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2014, 18:38     Сдвинуть элементы одномерного массива вправо на 1 элемент
Посмотрите здесь:

Сдвинуть элементы массива циклически на n позиций вправо. C++
C++ Сдвинуть (циклически) элементы одномерного массива
Сдвинуть циклически элементы одномерного массива на k позиций влево C++
C++ Сдвинуть элементы массива на k элементов вправо
Задан массив из k чисел. Сдвинуть элементы массива циклически на n позиций вправо C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
14.04.2014, 18:55     Сдвинуть элементы одномерного массива вправо на 1 элемент #2
Вы хотите добиться такого:
1 2 3 4
после сдвига
4 1 2 3
?

Добавлено через 4 минуты
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
#include <iostream>
#include <ctime>
using std::cout;
using std::cin;
 
int main () 
{   setlocale (LC_CTYPE, "Russian");
    int const N = 10;
    int arr[N], i, last;
    srand ((unsigned int) time (NULL));
 
    cout << "\nИсходный массив:\n";
    for (i = 0; i<N; i++)
    {   arr[i] = rand()%9 + 1;
        cout << arr[i] << "  ";
    }
 
    //сдвиг вправо
    last = arr[N-1];
    for (i = N-2; i>-1; i--)
        arr[i+1] = arr[i];
    
    arr[0] = last;
    
    cout << "\nПосле сдвига вправо:\n";
    for (i = 0; i<N; i++)
        cout << arr[i] << "  ";
 
    cin.sync(); cin.get();
    return 0;
}
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
14.04.2014, 18:58     Сдвинуть элементы одномерного массива вправо на 1 элемент #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
const int n = 10;
    int arr[n];
    for (int i = 1; i <= n; i++)//Заполнение
        arr[i - 1] = i;
    
    for (int i = n - 1; i > 0; i--)//Сдвиг
        swap(arr[i], arr[i-1]);
 
    for (int i = 0; i < n; i++)//Вывод
        cout << arr[i] << " ";
    cout << endl;
Bolbine84455
0 / 0 / 1
Регистрация: 12.03.2014
Сообщений: 266
14.04.2014, 19:45  [ТС]     Сдвинуть элементы одномерного массива вправо на 1 элемент #4
Пример работы:
___ДО: 0 1 2 3 4 5 6
ПОСЛЕ:0 0 1 2 3 4 5
Компилятор жалуется на оба кода:
Кликните здесь для просмотра всего текста
Сдвинуть элементы одномерного массива вправо на 1 элемент

Кликните здесь для просмотра всего текста
Сдвинуть элементы одномерного массива вправо на 1 элемент

Некоторые функции я не понимаю =(
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
14.04.2014, 20:02     Сдвинуть элементы одномерного массива вправо на 1 элемент #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Bolbine84455 Посмотреть сообщение
Компилятор жалуется на оба кода:
к юзингам добавь using std::swap;
А в первом нужно подключить библиотеку stdlib.h ну и time.h
Цитата Сообщение от Bolbine84455 Посмотреть сообщение
Некоторые функции я не понимаю =(
swap - обменять значениями.
Функция srand() используется для установки начала последовательности, генерируемой функ*цией rand() (функция rand() возвращает псевдослучайные числа).
Bolbine84455
0 / 0 / 1
Регистрация: 12.03.2014
Сообщений: 266
14.04.2014, 21:19  [ТС]     Сдвинуть элементы одномерного массива вправо на 1 элемент #6

Не по теме:

Можете объяснить, почему мой код не работает?



Добавлено через 57 минут

Не по теме:

Нашел ошибку. Знак не тот поставил. Всем спасибо =)

Yandex
Объявления
14.04.2014, 21:19     Сдвинуть элементы одномерного массива вправо на 1 элемент
Ответ Создать тему
Опции темы

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