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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 81, средняя оценка - 4.89
PunkRoker44
1 / 1 / 0
Регистрация: 23.08.2012
Сообщений: 29
#1

Перевернуть одномерный массив - C++

23.08.2012, 14:57. Просмотров 13243. Ответов 7
Метки нет (Все метки)

Народ. Помогите пожалуйста с программой. Нужно перевернуть одномерный массив одним из простых способов. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2012, 14:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевернуть одномерный массив (C++):

Как перевернуть одномерный массив? - C++
#include <iostream>; using namespace std; int main() { const int n=3; int myArray={1,2,3}; for (int i=0; i<n; i++){ ...

Перевернуть одномерный и двумерный массив - C++
Перевернуть одномерный массив. Перевернуть двумерный массив

Матрица и одномерный массив (Составить одномерный массив, содержащий количество буквенных символов в каждом из ее столбцов, подсчет символов) - C++
Помогите решить задачку: Дана матрица 5х7, элементами которой являются значения символьного типа. Составить одномерный массив, содержащий...

Перевернуть массив - C++
Дан массив размерности n. Заполнить массив случайными числами в диапазоне . Перевернуть массив: a↔a, a↔a и т.д. Для работы с массивом...

Перевернуть массив - C++
Дан массив размерности n. Заполнить массив случайными числами в диапазоне . Перевернуть массив: a↔a, a↔a и т.д. Для работы с массивом...

Перевернуть массив - C++
В завершении это программы нужно «перевернуть массив» - поменять первый элемент с последним, второй с предпоследним и т.д, но никак не...

7
Thinker
Эксперт С++
4227 / 2201 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
23.08.2012, 15:00 #2
Просто распечатать в перевернутом виде:
C
1
2
3
4
5
6
7
8
9
10
int Print(int *a, int *end)
{
   if (a < end)
   {
       Print(a + 1, end);
       printf("%d ", *a);
   }
}
 
Print(a, a + N);
Перевернуть массив:
C
1
2
3
4
5
6
7
8
9
10
11
void Reverse(int *a, int *b)
{
   if (a < b)
   {
       *a += *b; *b = *a - *b; *a -= *b;
       Reverse(a + 1, b - 1);
   }
}
 
 
Reverse(a, a + N - 1);
0
PunkRoker44
1 / 1 / 0
Регистрация: 23.08.2012
Сообщений: 29
23.08.2012, 15:12  [ТС] #3
напишите полностью программу плз начиная с include
1
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
23.08.2012, 15:15 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int main() {
   int array[] = { 1, 5, -7, 1, 0, -1, 3, 6, 2, 0, 7 };
   int * begin = array;
   int * end = array + sizeof(array) / sizeof(*array) - 1;
   
   while (begin < end) {
      *begin ^= *end ^= *begin ^= *end;
      begin++; end--;
   }
   
   for (const int * p = array; p < array + sizeof(array) / sizeof(*array); p++) {
      std::cout << *p << " ";
   }
}
http://liveworkspace.org/code/3956b546347f500bc2702526f2a24dac
0
Thinker
Эксперт С++
4227 / 2201 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
23.08.2012, 15:15 #5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h>
void Reverse(int *a, int *b)
{
   if (a < b)
   {
       *a += *b; *b = *a - *b; *a -= *b;
       Reverse(a + 1, b - 1);
   }
}
 
int main()
{
   int i, a[] = {1,2,3,4,5}, n;
   n = sizeof(a) / sizeof(*a);
   for(i = 0; i < n; i++)
      printf("%d ", a[i]);
   Reverse(a, a + n - 1);
   puts("\n");
   for(i = 0; i < n; i++)
      printf("%d ", a[i]);
   return 0;
}
0
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
23.08.2012, 15:37 #6


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
#include <iostream>
 
#include <boost/mpl/vector.hpp>
#include <boost/mpl/reverse.hpp>
#include <boost/mpl/for_each.hpp>
 
namespace mpl = boost::mpl;
 
struct PrintSeq {
   template <typename T>
   void operator()(T val) {
      std::cout << val << " ";
   }
};
 
template <typename Seq>
struct Reverse {
   typedef typename
      mpl::reverse <Seq>::type type;
};
 
int main() {
   typedef mpl::vector <
      mpl::int_ <1>,
      mpl::int_ <2>,
      mpl::int_ <3>,
      mpl::int_ <4>,
      mpl::int_ <5>
   > v_numbers;
   typedef typename
      Reverse <v_numbers>::type rev_vector;
      
   mpl::for_each <rev_vector>(PrintSeq());  
}
http://liveworkspace.org/code/000baa814d8191dc3da71c57b951579a
0
Пaтрик
416 / 391 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
23.08.2012, 15:53 #7
По-старинке:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <algorithm>
#include <iterator>
 
int main()
{
   int arr[] = { 1, 2, 3, 4, 5 };
   std::reverse(std::begin(arr),
         std::end(arr));
   std::copy(std::begin(arr), std::end(arr), 
         std::ostream_iterator<int>(std::cout, " ")); 
}
link
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
23.08.2012, 17:23 #8
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
#include <iostream>
 
int main() {
 
    using namespace std;
    
    const int n = 5;
    int a[n];
 
    // вводим элементы массива
    cout << "input array:\n";
 
    for(int i = 0; i < n; ++i) {
 
        cout << i + 1 << "\\" << n << ": ";
        cin >> a[i];
        if(!cin) return 1;
    }
 
    // переворачиваем
    for(int i = 0,  j = n - 1; i < j; ++i, --j) {
 
        int t = a[i];
        a[i] = a[j];
        a[j] = t;
    }
 
    // выводим элементы массива на экран
    cout << "result:\n";
    
    for(int i = 0; i < n; ++i)
        cout << " " << a[i];
 
    cout << "\n";    
}
1
23.08.2012, 17:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2012, 17:23
Привет! Вот еще темы с ответами:

Перевернуть массив - C++
Люди! Помогите пожалуйста с программой. Дан массив размерности n. Перевернуть массив: a(n)=a(0), a(n-1)=a(1) и т.д. Напишите...

перевернуть массив - C++
Есть символьный массив, сделать его реверс! #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; int main() { char ...

Найти количество простых чисел в массиве. Перевернуть все нечетные строки матрицы. Перевернуть каждое четное слово в строке - C++
Ребята помогите разобраться в коде программы, написав подробные комменты к данной проге. Спасибо! Постановка задачи 1. Используя...

Перевернуть массив и, удалив средний элемент и добавить в начало 3 элемента - C++
Сформировать двумерный массив целых чисел 1)Распечатать полученный массив. 2)Перевернуть массив и, если число элментов массива...


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

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

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