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

В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные – в конец с сохранением порядка следования - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
STRj
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 31
19.02.2014, 16:24     В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные – в конец с сохранением порядка следования #1
Здравствуйте форумчане! Подскажите, как решить данные задания. Отстаю от группы, а так и не разобрался в этой теме.


Используя Массив
В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные – в конец с сохранением порядка следования. Дополнительный массив заводить не разрешается.

Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2014, 16:24     В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные – в конец с сохранением порядка следования
Посмотрите здесь:

[C++]Все отрицательные элементы массива перенести в начало, а все остальные - в конец C++
Все положительные элементы массива поставить в начало, а отрицательные - в конец C++
C++ Необходимо, пройдя по массиву один раз, все его положительные элементы поставить в начало а отрицательные в конец
В одномерном массиве все отрицательные элементы переместить в начало массива C++
Данный массив A (n). Все положительные его элементы поместить в начало массива B (n), а все отрицательные - в начало массива C (n). Подсчитать количес C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Amandosov
Знаток
156 / 156 / 65
Регистрация: 18.11.2012
Сообщений: 411
Записей в блоге: 2
19.02.2014, 17:26     В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные – в конец с сохранением порядка следования #2
Задание на массив
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
#include<iostream>
using namespace std;
 
int main()
{
int n,a[100],buf;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
 
for(int i=n-1;i>=0;i--)
if(a[i]<0)
{
buf=a[i];
for(int j=i;j>0;j--)
a[i]=a[i-1];
a[0]=buf;
}
 
for(int i=0;i<n;i++)
cout<<a[i]<<' ';
 
 
return 0;
}
STRj
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 31
20.02.2014, 06:59  [ТС]     В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные – в конец с сохранением порядка следования #3
Amandosov, сейчас на работе, софта нету, завтра с утра проверю, спасибо за помощь.

Добавлено через 11 часов 2 минуты
Amandosov, на цикл правильно, а на массив ошибки выдает. Посмотри пожалуйста.
for(int i=0;i<n;i++) ошибка
cin>>a[i];

for(int i=n-1;i>=0;i--) ошибка
Кликните здесь для просмотра всего текста
Compiling...
lab3.cpp
Z:\lab3\lab3.cpp(11) : error C2374: 'i' : redefinition; multiple initialization
Z:\lab3\lab3.cpp(8) : see declaration of 'i'
Z:\lab3\lab3.cpp(20) : error C2374: 'i' : redefinition; multiple initialization
Z:\lab3\lab3.cpp(8) : see declaration of 'i'
Error executing cl.exe.
SatanaXIII
20.02.2014, 08:49
  #4
 Комментарий модератора 
STRj, пункт 5.16 Правил: один вопрос - одна тема.
STRj
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 31
26.02.2014, 18:20  [ТС]     В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные – в конец с сохранением порядка следования #5
Не нашел ошибку, возможно решение не используя buf=a[i]; ?
Yandex
Объявления
26.02.2014, 18:20     В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные – в конец с сохранением порядка следования
Ответ Создать тему
Опции темы

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