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

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

Восстановить пароль Регистрация
 
Suarez777
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 66
18.06.2013, 20:22     Сдвиг элементов массива вправо и смена местами первого и последнего элемента #1
Есть массив с n-ным колличеством элементов. Нужно сдвинуть значение каждого элемента вправо на один, а первый и последний элемент поменять местами.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2013, 20:22     Сдвиг элементов массива вправо и смена местами первого и последнего элемента
Посмотрите здесь:

Найти номер последнего максимального элемента среди элементов, лежащих в диапазоне [c,d] и расположенных до первого четного элемента. C++
C++ Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k- индекс максимального элемента.
C++ Подскажите, как сделать сдвиг массива вправо для вставки нового элемента?
C++ Сдвиг элементов массива вправо на ону позицию
C++ Сдвиг элементов массива циклически на a позиций вправо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MarVaL
С++ Beginner
 Аватар для MarVaL
116 / 116 / 16
Регистрация: 28.02.2013
Сообщений: 246
18.06.2013, 22:09     Сдвиг элементов массива вправо и смена местами первого и последнего элемента #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
#include <iostream>
#include <iomanip>
 
int main() {
  setlocale(0, "");
  
  int a[] = {3, 5, 7, 1, 2, 3, 4, 5};
  
  static const int n = sizeof a / sizeof *a;
  
  std::cout << "Массив: " << std::endl;
  
  for(int i = 0; i != n; ++i)
    std::cout << std::setw(3) << a[i];
  
  int tmp = a[n - 1];
  
  for(int i = n - 1; i > 0; --i)
    a[i] = a[i - 1];
  
  a[0] = tmp;
  
  std::cout << "\nПосле сдвига: " << std::endl;
  
  for(int i = 0; i != n; ++i)
    std::cout << std::setw(3) << a[i];
 
  
  return 0;
}
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
18.06.2013, 22:29     Сдвиг элементов массива вправо и смена местами первого и последнего элемента #3
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>
#include <stdlib.h>
#include <time.h>
using namespace std;
int A[100];
 
int main()
{
srand(time(NULL));
int i,temp,N=100;
cout<<"Enter N\n";
cin>>N;
// инициализация массива
for (i =0; i < N; i++)
{
    A[i]= rand() % 100;
cout <<A[i]<<", ";
}
cout << "\n\n";
// сдвиг массива вправо
for (i =0; i < N; i++)
   temp= A[i];
   {
        for(i=N-1; i> 0; i--)
           A[i]= A[i-1];
           A[0]= temp;
   }
// вывод массива
for(i=0; i<N; i++)
cout <<A[i]<<", ";
return 0;
}
Про поменять местами не совсем понял.
Amedal
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 11
19.06.2013, 10:01     Сдвиг элементов массива вправо и смена местами первого и последнего элемента #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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <ctime>
 
using namespace std;
int main()
{
    setlocale(LC_ALL,"rus");
 
    int n,buf=0;
    cout << "Введите количество элементов: ";
    cin >> n;
 
    int *mas= new int [n];
    srand(time(NULL));
 
    for (int i=0; i<n; i++) //рандомим массив
    {
     mas[i]=0+ rand()%100;
    }
    system("cls");
    cout << "\t\t\tЭлементы массива" << "\n" <<endl;
 
    for (int i=0; i<n; i++) //выводим полученный массив
     cout << setw (4) << mas[i];
    
   for (int i=n-1; i> 0; --i) //сдвигаем каждый элемент в право на 1
           mas[i]= mas[i-1];
 
  buf=mas[n-1]; // меняем 1ый элемент массива с последним
  mas[n-1]=mas[0];
  mas[0]=buf;
 
    cout << endl << endl;
    cout << "\tОтсортированный массив, первый и последний элемент поменяли местами";
    cout << endl << endl;
    
    for (int i=0; i<n; i++) //выводим полученный массив
    {
     cout << setw (4) << mas[i];
    }
 
cout << endl << endl;
    system("pause");
    return 0;
}
Yandex
Объявления
19.06.2013, 10:01     Сдвиг элементов массива вправо и смена местами первого и последнего элемента
Ответ Создать тему
Опции темы

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