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

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

Войти
Регистрация
Восстановить пароль
 
Zidane Tribal
0 / 0 / 0
Регистрация: 27.06.2013
Сообщений: 5
#1

Сдвиг элементов массива циклически на a позиций вправо - C++

10.10.2013, 00:24. Просмотров 800. Ответов 2
Метки нет (Все метки)

Применять можно только статические одномерные массивы, циклы и if.
Вроде бы всё правильно, но цикл for (j=2; j>0; j--) бесконечно крутится. Буду благодарен за указание ошибки.



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
#include <iostream.h>;
#include <stdlib.h>;
int main ()
{
int i,a,j,x;
    int arr[3];
    cout << "Vvod elementov massiva:" << endl;
        for (i=0;i<3;i++)
            cin >> arr[i];
    cout << "arr < " ;
        for (i=0;i<3;i++)                    // вывод элементов массива на экран
            cout << arr[i] << " "  ;
    cout << " >" << endl;
    cout << "Ukazhiute, na skol'ko pozsicii sdvigaem" << endl;
    cin >> a;
        for (i=1; i<=a; i++) 
        {
            for (j=2; j>0; j--)
                if (j=2) 
                    x=arr[2];
                else arr[j]=arr[j-1];
            arr[0]=x;
        }
    cout << "arr < " ;
        for (i=0;i<3;i++)                    // вывод элементов массива на экран
            cout << arr[i] << " "  ;            
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2013, 00:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сдвиг элементов массива циклически на a позиций вправо (C++):

Цикличиский сдвиг элементов массива вправо на k позиций - C++
Дан массив размера N ≥ 2 и число k (0 &lt; k &lt; N). Осуществить циклический сдвиг элементов массива вправо на k позиций. Input Первая...

Циклический сдвиг элементов массива вправо на К позиций - C++
Дан массив размера N и число К (0&lt;k&lt;5, K&lt;n) Осуществить циклический сдвиг элементов массива вправо на К позиций .

Осуществить сдвиг элементов массива вправо на k позиций - C++
Всем привет , помогите пожалуйста решить эту задачу на языке Си 9. Дан целочисленный массив размера N. Осуществить сдвиг вправо на k...

Осуществить циклический сдвиг элементов массива вправо на k позиций - C++
Решаю задачи на сервере одном, задание было &quot;Дан массив размера N ≥ 2 и число k (0 &lt; k &lt; N). Осуществить циклический сдвиг элементов...

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

сместите циклически элементы массива на К позиций вправо - C++
помогите сделать прогу В одномерном массиве, состоящем из n вещественных элементов, запишите: 1) Выделенные из числа N цифры...

2
DirectX
23 / 17 / 6
Регистрация: 07.10.2013
Сообщений: 47
10.10.2013, 02:01 #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
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main ()
{
    int i,a,j,x, n;
    cout << "BBediTe koli4ectBo elemeHToB: ";
    cin >> n;
    int arr[n];
    
    cout << "Vvod elementov massiva: ";
    for (i = 0; i < n; i++)
        cin >> arr[i];
    
    cout << "arr < " ;
    for (i = 0; i < n - 1; i++)                   
        cout << arr[i] << " ";
    cout << arr[n - 1] << " >" << endl;
    
    cout << "Ukazhiute, na skol'ko pozsicii sdvigaem: ";
    cin >> a;
    int temp[a];
    
    for (int j = 0; j < a; j++)
    {
        temp[j] = arr[j];
    }
    
    for (i = 0; i < n - a; i++) 
    {
        arr[i] = arr[i + a];
    }
    
    for (int j = n - a, k = 0; j < n; j++, k++)
    {
        arr[j] = temp[k];   
    }
    
    for (i = 0; i < n - 1; i++)                         
        cout << arr[i] << " ";
    cout << arr[n - 1] << "\n";
            
    system("pause");
    return 0;
}
0
Cynacyn
33 / 33 / 0
Регистрация: 02.05.2013
Сообщений: 109
10.10.2013, 02:25 #3
Цитата Сообщение от Zidane Tribal Посмотреть сообщение
Применять можно только статические одномерные массивы, циклы и if.
Вроде бы всё правильно, но цикл for (j=2; j>0; j--) бесконечно крутится. Буду благодарен за указание ошибки.
C++
1
2
    for (j=2; j>0; j--)
                if (j=2)
очевидно предполагалось if(j==2)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2013, 02:25
Привет! Вот еще темы с ответами:

Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k- индекс максимального элемента. - C++
Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k- индекс максимального элемента.

Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k – индекс максимального элемента - C++
Помогите пожалуйста решить эту задачу, Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций,...

Одномерный массив, Сдвинуть элементы массива циклически на 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,...

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


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

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

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