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

Циклически сдвинуть массив на 1 элемент влево - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Цикл с параметром (for): Найти сумму чисел в диапазоне [a;b], которые при делении на 5 дают остаток 3 http://www.cyberforum.ru/cpp-beginners/thread760784.html
Вводятся числа a и b. Найти сумму чисел в диапазоне , которые при делении на 5 дают остаток 3.
C++ классы и заголовочные файлы Было у меня два класса и всё в одном cpp-файле реализовано. Потом я решил что неплохо было их в разные файлы распихать и еще заголочных файлов добавить (хз зачем мне это понадобилось, раньше таким не занимался). Тут и начались проблемы.. Проблема в том, что в описании одного класса содержится указатель на другой класс и обратно. Выглядит всё это примерно так: main.cpp #include "func1.h"... http://www.cyberforum.ru/cpp-beginners/thread760773.html
очередь на основе циклического масива C++
Нужно реализовать АТД Очередь на основе циклического массива, реализовать дополнительно метод поиска и удаления минимального элемента из очереди
Определение количества слов в тексте, которые состоят из не повторяющихся символов C++
Помогите пожалуйста написать программу. Я только начинаю осваивать C++ Дан текст, состоящий из слов. Под словом понимается последовательность литер, не содержащих пробелов и знаков препинания. Напечатать все слова, состоящие из не повторяющихся символов.
C++ Двумерный массив. Определить количество равных нулю элементов. http://www.cyberforum.ru/cpp-beginners/thread760721.html
в массиве определить количество равных нулю элементов. Если их больше половины , то первый и последний элемент заменить на -100
C++ Инвертировать строки Доброго времени суток. Смотрел несколько похожих задач, но там все делалось с помощью библиотек algorithm и vector. Тут же нужно сделать все как линейный список. Может кто-то помочь решить это задание? Инвертировать каждую строку текстового файла с помощью стека (записать символы в обратном порядке). Результат записать в новый файл. подробнее

Показать сообщение отдельно
Croessmah
Модератор
Эксперт CЭксперт С++
12878 / 7264 / 810
Регистрация: 27.09.2012
Сообщений: 17,945
Записей в блоге: 2
Завершенные тесты: 1
13.01.2013, 22:14     Циклически сдвинуть массив на 1 элемент влево

Не по теме:

Дмитрий 93, код Hello World'a не правильный



Добавлено через 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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
#include <iomanip>
#include <ctime>
#include <cmath>
 
int * ShiftR(int *arr,int size, int shift){
    if(shift<0) return arr;
    shift=shift%size;
    int *temp=new int[shift];
    memcpy(temp,arr+size-shift,shift*sizeof(*arr));
    memmove(arr+shift,arr,(size-shift)*sizeof(*arr));
    memcpy(arr,temp,shift*sizeof(*arr));
    delete [] temp;
    return arr;
}
 
int * ShiftL(int *arr,int size, int shift){
    if(shift<0) return arr;
    shift=shift%size;
    int *temp=new int[shift];
    memcpy(temp,arr,shift*sizeof(*arr));
    memmove(arr,arr+shift,(size-shift)*sizeof(*arr));
    memcpy(arr+size-shift,temp,shift*sizeof(*arr));
    delete [] temp;
    return arr;
}
 
 
int * Shift(int *arr,int size, int shift){
    if (shift<0) return ShiftL(arr,size,std::abs(shift));
    if (shift>0) return ShiftR(arr,size,shift);
    return arr;
}
 
int main(){
    const int size=10;
    int arr[size];
    std::srand(std::time(NULL));
    for(int i=0;i<size;++i){
        std::cout<<std::setw(3)<<(arr[i]=std::rand()%90+10);
    }
    std::cout<<std::endl;
 
    ShiftL(arr,size,1);
    ShiftR(arr,size,2);
 
    Shift(arr,size,-1);
    Shift(arr,size,2);
 
    for(int i=0;i<size;++i){
        std::cout<<std::setw(3)<<arr[i];
    }   
    std::cin.get();
    return 0;
}
 
Текущее время: 23:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru