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

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

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

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

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

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

Массив: преобразорвать двумерный массив в одномерный и отсортировать его методом пузырька C++
Массив: Все элементы массива, кратные трем, записать в одномерный массив. C++
C++ перевернуть массив
Массив: найти номера столбцов с положительными элементами и записать их в одномерный массив C++
Матрица и одномерный массив (Составить одномерный массив, содержащий количество буквенных символов в каждом из ее столбцов, подсчет символов) C++
C++ Перевернуть массив
Найти количество простых чисел в массиве. Перевернуть все нечетные строки матрицы. Перевернуть каждое четное слово в строке C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
4220 / 2194 / 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);
PunkRoker44
1 / 1 / 0
Регистрация: 23.08.2012
Сообщений: 29
23.08.2012, 15:12  [ТС]     Перевернуть одномерный массив #3
напишите полностью программу плз начиная с include
nameless
Эксперт C++
314 / 296 / 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/3956b5...702526f2a24dac
Thinker
Эксперт C++
4220 / 2194 / 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;
}
nameless
Эксперт C++
314 / 296 / 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/000baa...a71c57b951579a
Пaтрик
396 / 389 / 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2012, 17:23     Перевернуть одномерный массив
Еще ссылки по теме:

C++ Перевернуть массив
Целочисленный массив с размером 4*4 .Написать прогу , формирующую одномерный массив C++
Перевернуть одномерный и двумерный массив C++
Перевернуть массив и, удалив средний элемент и добавить в начало 3 элемента C++
C++ Как перевернуть одномерный массив?

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

Или воспользуйтесь поиском по форуму:
rangerx
1931 / 1540 / 141
Регистрация: 31.05.2009
Сообщений: 2,905
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";    
}
Yandex
Объявления
23.08.2012, 17:23     Перевернуть одномерный массив
Ответ Создать тему
Опции темы

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