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

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

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

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

02.07.2009, 18:21. Просмотров 758. Ответов 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';
   }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2009, 18:21     переставить елементы массива
Посмотрите здесь:

елементы массива - 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++
Переставить четвертый элемент массива на последнее место, сдвигая элементы массива. То есть , выводятся какие-то случайные числа ,...

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

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

Добавлено через 6 минут 0 секунд
Цитата Сообщение от Vourhey Посмотреть сообщение
Подумай над алгоритмом, тут два цикла не нужны. и брэйки тоже
А не мог бы ты свой вариант показать?
Vourhey
Почетный модератор
6477 / 2252 / 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++);
Хех
но лучше так не делать
Duran
0 / 0 / 0
Регистрация: 21.06.2009
Сообщений: 13
02.07.2009, 19:28  [ТС]     переставить елементы массива #9
И ты думал что я сам доэтого додумаюсь?

а что означает символ ^= я такого не встречал еще.
Vourhey
Почетный модератор
6477 / 2252 / 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;
    }
это оператор исключающего или.
Да ладно, фигня, это все с практикой придет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2009, 00:13     переставить елементы массива
Еще ссылки по теме:

Переставить столбцы массива - C++
Доброго времени суток) очень прошу вас помочь с программой. Дан двумерный массив из трех строк и восемнадцати столбцов. Переставить...

Переставить местами ni и nj строки массива A - C++
Задание.Дан числовой массив А, состоящий из n строк и m столбцов. Переставить местами ni и nj строки массива A. допустим у нас...

Переставить соседние элементы массива - C++
Напишите программу, которая переставляет соседние элементы массива (1-й элемент поменять с 2-м, 3-й с 4-м и т.д. Если элементов нечетное...

Переставить соседние элементы массива - C++
Переставьте соседние элементы массива (A c A, A c A и т.д.). Если элементов нечетное число, то последний элемент остается на своем месте.

Переставить элементы массива по правилу - C++
Помогите, пожалуйста, как решить эти 3 задачи, незнаю, как решать.Буду очень благодарен. Вот задание на одномерный массив Программа,...


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

Или воспользуйтесь поиском по форуму:
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,911
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);
Yandex
Объявления
03.07.2009, 00:13     переставить елементы массива
Ответ Создать тему
Опции темы

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