Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.07.2017, 12:42   #1
SpaceQuester
 
Аватар для SpaceQuester
 
Регистрация: 25.02.2013
Сообщений: 9
По умолчанию Цикл по проходу массива: 1, N, 2, N-1, 3, N-2, 4, N-3, …

Друзья, подскажите, пожалуйста с простенькой функцией for по обходу одномерного массива, что бы сначала брался первый элемент, затем последний, затем второй, затем предпоследний и т.д. В середине счетчик встретится, число элементов может быть как четное, так и нечетное.

Знания нужно срочно освежить. Вашей помощи прошу.
SpaceQuester вне форума Ответить с цитированием
Старый 26.07.2017, 12:49   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я бы так написал:
Код:
for(int i=0;i<((N+1)/2);i++){
if(i%2==0)
  cout<<A[i]<<" ";
else
  cout<<A[N-1-i]<<" ";
}
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.07.2017, 13:07   #3
SpaceQuester
 
Аватар для SpaceQuester
 
Регистрация: 25.02.2013
Сообщений: 9
По умолчанию

Спасибо, но не то, к сожалению.

Вот код: https://pastebin.com/9F8FZidG

Должен быть вывод: 0 9 1 8 2 7 3 6 4 5.

А выводится вот что:

Цитата:
sergeymakovkin@MBP-Sergey:~/Documents/Solver$ clang test.c -o test.out
sergeymakovkin@MBP-Sergey:~/Documents/Solver$ ./test.out
0
9
2
7
4
sergeymakovkin@MBP-Sergey:~/Documents/Solver$
SpaceQuester вне форума Ответить с цитированием
Старый 26.07.2017, 13:25   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Надо убрать if оставить два cout вызова.
waleri вне форума Ответить с цитированием
Старый 26.07.2017, 13:49   #5
SpaceQuester
 
Аватар для SpaceQuester
 
Регистрация: 25.02.2013
Сообщений: 9
По умолчанию

Да, всё верно. Спасибо! https://pastebin.com/J4vdQCN4

Только на самом деле мне нужно таким образом пересортировать вторую половину списка. А первый оставить.

Т.е. массив вначале такой: 0 1 2 3 4 5 6 7 8 9 (это номера строчек, внутри там может что угодно).
Мне нужно перевернуть только от 5 до 9, что бы получилось вот что: 0 1 2 3 4 5 9 6 8 7
И во второй половине нечетное число элементов. 7 не должна войти дважды.

Вот такая фигня...
SpaceQuester вне форума Ответить с цитированием
Старый 26.07.2017, 14:02   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от SpaceQuester Посмотреть сообщение
Только на самом деле мне нужно
Ну, что спросили то и получили...
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
цикл в цикле for и объединение массива s88s PHP 8 19.05.2015 12:44
создание двумерного массива через цикл victor5133 PHP 3 22.03.2013 13:29
Цикл с использованием двумерного числового массива natalik-89 Помощь студентам 4 23.05.2010 17:02
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34