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

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

Войти
Регистрация
Восстановить пароль
 
Duran
0 / 0 / 0
Регистрация: 21.06.2009
Сообщений: 13
#1

переставить елементы массива - C++

02.07.2009, 18:21. Просмотров 762. Ответов 10
Метки нет (Все метки)

Задали задачу:
В массиве переставить значения в обратном порядке.
Тоесть(1,2,3,4,5)надо перевернуть(5,4,3,2,1)
Написал код ,вроде должен работать, но не работает.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const int n=5;  
int a[n]={1,2,3,4,5},buf;   
 for(int i=0;i<n/2;i++)
{
    bool f=true;    
    for(int j=n-1;j>n/2;j--)
    {           
    buf=a[i];
    a[i]=a[j];
    a[j]=buf;
    f=false;
    break; //проблема в этом брейке                 
    }
    if(f)
   {
    cout<<'\n'<<a[i]<<'\n';
   }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2009, 18:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос переставить елементы массива (C++):

елементы массива - C++
#include &quot;stdafx.h&quot; #include&lt;string&gt; #include &lt;cmath&gt; #include &lt;iostream&gt; #include&lt;locale&gt; using namespace std; const int...

заменить отрицательные елементы массива - C++
В общем, есть массив размерностью 100 элементов, диапазон от -100 до 100. Нужно заменить все элементы с отрицательными значениями средним...

Как сформировать из массива х массив y что бы елементы выводились в массиве до минимального значения? - C++
Как сформировать из массива х массив y что бы елементы выводились в массиве до минимального значения?

Если елементы массива соседние одинаковы то один из них заменяется на 0 а другой увеличиваетмя на один - C++
#include &quot;stdafx.h&quot; #include&lt;string&gt; #include &lt;cmath&gt; #include &lt;iostream&gt; #include&lt;locale&gt; using namespace std; const int...

Переставить четвертый элемент массива на последнее место, сдвигая элементы массива - C++
Создать программу в которой нужно : a) Одномерный массив из 8 элементов целого типа в диапазоне ; b) Переставить четвертый элемент...

Не использую доп. элементов массива переставить элементы массива в обратном порядке - C++
Не использую доп. элементов массива переставить элементы массива в обратном порядке Вот что получилось (все нужно сделать с выводом и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Vourhey
Почетный модератор
6481 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
02.07.2009, 18:32 #2
Подумай над алгоритмом, тут два цикла не нужны. и брэйки тоже
0
Duran
0 / 0 / 0
Регистрация: 21.06.2009
Сообщений: 13
02.07.2009, 18:36  [ТС] #3
Цитата Сообщение от Vourhey Посмотреть сообщение
Подумай над алгоритмом, тут два цикла не нужны. и брэйки тоже
Увы я только до этого и додумался.
0
Vourhey
Почетный модератор
6481 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
02.07.2009, 18:38 #4
например, ты не думал "на фига мне две переменные цикла и два цикла, если элементу с индексом i есть зеркальный элемент с индексом n-i". Думай.
0
Duran
0 / 0 / 0
Регистрация: 21.06.2009
Сообщений: 13
02.07.2009, 18:42  [ТС] #5
Цитата Сообщение от Vourhey Посмотреть сообщение
например, ты не думал "на фига мне две переменные цикла и два цикла, если элементу с индексом i есть зеркальный элемент с индексом n-i". Думай.
Да просто только вчера начали массивы изучать поэтому я пока по шаблонам думаю.
0
Vourhey
Почетный модератор
6481 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
02.07.2009, 18:45 #6
Duran, ок. Вот сейчас отойди от шаблонов. У тебя есть элемент a[i] его ту будешь менять с a[n-i]. Думай.
1
Duran
0 / 0 / 0
Регистрация: 21.06.2009
Сообщений: 13
02.07.2009, 18:58  [ТС] #7
Цитата Сообщение от Vourhey Посмотреть сообщение
Duran, ок. Вот сейчас отойди от шаблонов. У тебя есть элемент a[i] его ту будешь менять с a[n-i]. Думай.
Спасибо огромное за подсказку.Правда я всетаки с вложенным массивом сделал

Добавлено через 6 минут 0 секунд
Цитата Сообщение от Vourhey Посмотреть сообщение
Подумай над алгоритмом, тут два цикла не нужны. и брэйки тоже
А не мог бы ты свой вариант показать?
0
Vourhey
Почетный модератор
6481 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
02.07.2009, 19:19 #8
C
1
2
int a[N]={1,2,3,4,5},i=0,n=N-1;
for(i=0; i<N/2;a[i]^=a[n-i], a[n-i]^=a[i], a[i]^=a[n-i],i++);
Хех
но лучше так не делать
1
Duran
0 / 0 / 0
Регистрация: 21.06.2009
Сообщений: 13
02.07.2009, 19:28  [ТС] #9
И ты думал что я сам доэтого додумаюсь?

а что означает символ ^= я такого не встречал еще.
0
Vourhey
Почетный модератор
6481 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
02.07.2009, 19:35 #10
ок. Тогда ты легко мог додуматься до:
C
1
2
3
4
5
6
7
    int a[N]={1,2,3,4,5}, i=0, buf=0;
    for(i=0; i<N/2; i++)
    {
        buf = a[i];
        a[i] = a[N-1-i];
        a[N-1-i] = buf;
    }
это оператор исключающего или.
Да ладно, фигня, это все с практикой придет.
1
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
03.07.2009, 00:13 #11
Альтернативный вариант )
C++
1
2
3
4
#include <algorithm>
//...
 int *p1 = a, *p2 = a+n-1;
 while(p1 < p2) std::swap(*p1++, *p2--);
или
C++
1
2
3
#include <algorithm>
//...
std::reverse(a, a+n);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2009, 00:13
Привет! Вот еще темы с ответами:

Отрицательные элементы массива А(N) переставить в начало массива и расположить их в порядке возрастания - C++
Привет. Хочу разобраться в использовании функциий. В функции я хочу найти все отррицательные элементы. А потом просто их вывести. ...

Переставить элемент массива на последнее место, сдвигая элементы массива - C++
Переставить четвертый элемент массива на последнее место, сдвигая элементы массива. То есть , выводятся какие-то случайные числа ,...

Элементы массива, стоящие на нечётных позициях, переставить в начало массива, а на чётных - в конец - C++
Превратить массив таким образом, чтобы в его первой половине располагались элементы, стоящие в нечетных позициях, а во второй половине -...

Переставить значение элементов заданного одномерного массива, так чтобы все нулевые оказались в конце массива - C++
А не нулевые в начале, не нарушая порядок, в котором они были


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.07.2009, 00:13
Ответ Создать тему
Опции темы

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