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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2011, 02:26   #1
kop
Пользователь
 
Регистрация: 29.01.2011
Сообщений: 65
По умолчанию Массивы методы сортировки

Пользователь вводит с клавиатуры положительные и отрицательные числа ( количество положительных и отрицательных чисел должно быть поровну). Вывести числа в таком порядке: два положительных, два отрицательных, два положительных, два отрицательных и т. д.
kop вне форума Ответить с цитированием
Старый 15.06.2011, 09:08   #2
Kyj
Пользователь
 
Регистрация: 06.06.2011
Сообщений: 26
По умолчанию

Есть наработки?
Kyj вне форума Ответить с цитированием
Старый 15.06.2011, 09:27   #3
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Я бы два стека сделал - один для положительных чисел, другой для отрицательных. При выводе делать делать проверку - если число подходящее, вывести на экран, а если нет - положить/забрать из стека.
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 15.06.2011, 10:50   #4
kop
Пользователь
 
Регистрация: 29.01.2011
Сообщений: 65
По умолчанию

Я сделал так.... сортировал все числа по возрастанию, потом разбил на два массива( для отрицательных чисел, и для положительных), теперь только осталось сделать вывод ( два положительных, два отрицательных, два положительных, два отрицательных и т. д.), а как это сделать не знаю((
kop вне форума Ответить с цитированием
Старый 15.06.2011, 11:17   #5
Kyj
Пользователь
 
Регистрация: 06.06.2011
Сообщений: 26
По умолчанию

Аля можно так:
(часть кода)

Код:
int массив1[10]
int массив2[10]
int index, in;

index = 0;

while (index < 10)
{
	for (in = 0; in < 2; in++, index++)	
		printf("%d ", массив1[index]);
	for (in -= 2, index -= 2; in < 2; in++, index++)	
		printf("%d ", массив2[index]);
}

Последний раз редактировалось Kyj; 15.06.2011 в 12:11.
Kyj вне форума Ответить с цитированием
Старый 15.06.2011, 12:01   #6
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

А не проще записывать сразу в один массив, потом отсортировать, узнать индекс первого положительного элемента и выводить примерно вот так:
Код:
for(i=0;i<n/2;i+=2){
  printf("%i %i %i %i ",a[i],a[i+1],a[i+first],a[i+first+1]); // first - индекс первого положительного элемента
};
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 15.06.2011, 12:08   #7
Kyj
Пользователь
 
Регистрация: 06.06.2011
Сообщений: 26
По умолчанию

Проще. Я просто не знал, что индекс элемента массива можно записывать как выражение (сам еще изучаю язык).

Теперь знаю. Спасибо.
Kyj вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Методы сортировки.Сортировка выбором. Alena_897 Visual C++ 0 29.04.2011 20:26
Методы сортировки массивов!!! >>arty<< Помощь студентам 2 20.01.2010 18:39
Паскаль методы сортировки Igomax Помощь студентам 5 24.10.2009 15:59
Методы сортировки. Teddy Помощь студентам 1 16.10.2008 19:08