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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Пивасик
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 13
#1

Очередное "Сдвинуть циклически на M элементов вправо" - C++

26.10.2010, 00:42. Просмотров 1636. Ответов 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
# include <iostream.h>
# include <stdlib.h>
# include <conio.h>
 
void main()
{
clrscr();
int a[100], b[100];
int i, n,m ;
 
cout << "\nEnter the size of array: ";
cin >> n;
     for (i=0;i<n;i++)
     {
      a[i]=rand()%100-50;
      cout << a[i] <<" ";
     }
cout << endl;
 
cout<<"Vvedite M: "<<endl;
cin>>m;
for (i=0; i<m; i++)
    b[i]=a[n-1-m];
for (i=n-1;i>m;--i)
    a[i]=a[i-m];
for (i=0; i<m;++i)
    a[i]=b[i];
 
for (i=0; i<n; i++)
cout << a[i] << " ";
getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2010, 00:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Очередное "Сдвинуть циклически на M элементов вправо" (C++):

Сдвинуть массив циклически на К элементов вправо - C++
Может кто знает.:) Сдвинуть массив циклически на К элементов вправо.

Сдвинуть массив А циклически на m элементов вправо - C++
2. Напишите программу, в которой создается одномерный массив (заполненный случайными числами в диапазоне от 1 до 10) целых чисел А....

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

Сдвинуть циклически на К слов вправо - C++
Задание Сдвинуть циклически на К слов вправо. Не могу решить, помогите!

Сдвинуть элементы массива вправо циклически на 1 шаг - C++
Задан одномерный массив целых чисел длины n. Сдвинуть элементы массива вправо циклически на 1 шаг. Пример входных данных 4 1 2 3 4 ...

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

5
Andrew_Lvov
Эксперт С++
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
26.10.2010, 01:21 #2
Можете внятно сформулировать вопрос/проблему ?
0
Пивасик
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 13
26.10.2010, 01:35  [ТС] #3
Цитата Сообщение от Andrew_Lvov Посмотреть сообщение
Можете внятно сформулировать вопрос/проблему ?
задание сдвинуть массив циклически на М элементов вправо!

я нашёл на форуме здесь примеры и по одному из них написал но оно не сдвигает ничего!
вот собственно и вся проблема!
0
МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
26.10.2010, 09:23 #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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <cstdlib>
#include <ctime>
 
const int sizemass=20,
    minnum=-50,
    maxnum=50;
 
void sdvmass(int *mass,int sizem,int sdvs)
{
    int newmass[sizem];
    if (sdvs>sizem)
        std::cout<<"Ошибка! Сдвиг не может быть больше количеств элементов"
            <<" в массиве."<<std::endl;
    for (int i=0;i<sizem;i++)
    {
        int newi=i+sdvs;
        if (newi>=sizem) newi-=sizem;
        newmass[newi]=mass[i];
    }
    for (int i=0;i<sizem;i++)
        mass[i]=newmass[i];
}
 
int main(int argc, char *argv[])
{
    srand(time(0));
    
    int mass[sizemass];
    std::cout<<"Исходный массив:"<<std::endl;
    for (int i=0;i<sizemass;i++)
    {
        mass[i]=rand()%(maxnum-minnum)+minnum;
        std::cout<<mass[i]<<" ";
    }
    std::cout<<std::endl;
    
    int M;
    std::cout<<"Введите сдвиг:";
    std::cin>>M;
    
    sdvmass(mass,sizemass,M);
    
    std::cout<<"Полученный массив:"<<std::endl;
    
    for (int i=0;i<sizemass;i++)
        std::cout<<mass[i]<<" ";
    std::cout<<std::endl;
    
    return 0;
}
Для русских шрифтов в виндуовской консоли разберётесь тут: Русские шрифты в консоли или измените соообщения на транслит. Я уж заморачиваться не буду, у меня Linux.
1
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
26.10.2010, 09:31 #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
#include <iostream>
using namespace std;
 
int main()
{
const int n = 10;
int a[n],i,j,k,tmp;
 
// Ввод массива
for (i = 0; i < n; i++)
{
        cout<<"Vvedite "<<i<<" element: ";
        cin>>a[i];
}
 
cout<<"Vvedte sdvig: ";
cin>>k;
 
// Перестановка
for(i=0; i<k; i++)
{
    for(j=n-1; j>=0; j--)
        if (j==n-1)
            tmp=a[n-1];
        else
            a[j+1]=a[j];
    a[0]=tmp;
}
 
// Вывод рез-та
cout<<"Resultat: "<<endl;
for (i = 0; i < n; i++)
        cout<<a[i]<<' ';
 
cin.get();
cin.get();
return 0;
}
1
Пивасик
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 13
26.10.2010, 18:00  [ТС] #6
Работает!
Всем спасибо!
0
26.10.2010, 18:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2010, 18:00
Привет! Вот еще темы с ответами:

Сдвинуть в двухмерном массиве все ряды циклически вправо... - C++
Ребят,написал программу но не так как нужно работает.Помогите исправить недоработки. Задание: Написать функцию,для поиска максимального...

Ввести пятизначное число и сдвинуть его циклически вправо на 2 разряда - C++
Ввести пятизначное число и сдвинуть его циклически вправо на 2 разряда (например, ввести число 12345 – получить и вывести 45123).Заранее...

Одномерный массив, Сдвинуть элементы массива циклически на n позиций вправо - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; using namespace std; int main() { int a,...

Биты, байты. Циклически сдвинуть на 4 разряда вправо четное число. - C++
В массиве Х чисел типа short обработать каждое число согласно условиям: Циклически сдвинуть на 4 разряда вправо четное число....


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

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

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