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

Размещение элементов в массиве - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Присвоение значения фунции fopen указателю на файл http://www.cyberforum.ru/cpp-beginners/thread121864.html
В "простом" компиляторе C++ я бы записал так: FILE * f; if ( f=fopen(file_name, "r") == 0) //проверка на существование файла {бла бла бла} Всё бы ничего, но в MVS08 видите ли... вот оно что: ...
C++ Структуры_Т Здравствуйте всем Задача такая: Создать список студентов с оценками по нескольким дисциплинам. Отсортировать список по убыванию среднего балла. Имеющих двойки удалить из списка С применением... http://www.cyberforum.ru/cpp-beginners/thread121855.html
C++ IDE для программирования на С/С++
Ребят, а есть версия Eclipse в компилятором MinGW? А то по отдельности скачал, а как там Eclipse с компилятором заставить работать не знаю... Заранее спасибо!
C++ почему выдает access violation?
подскажите плиз изза чего доступ ограничивает, и как сделать чтоб я мог каждому элементу массива структур присваивать по строке......заранее спасибо)) #include "stdafx.h" #include <stdio.h>...
C++ освобождение памяти от элементов списка http://www.cyberforum.ru/cpp-beginners/thread121833.html
подскажите как высвободить память,последняя часть проги,сама прога пашет,когда до высвобождения доходит,вылетает системная ошибка и открывает код ассемблера про операцию delete....заранее спасибо)))...
C++ Обработка символьной информации Обнаружено, что в тексте пропущены некоторые слова и словосочетания. Эти слова и словосочетания заданы отдельным списком в том порядке, в котором они должны быть вставлены в текст. Места вставки... подробнее

Показать сообщение отдельно
CyBOSSeR
Эксперт С++
2304 / 1674 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
25.04.2010, 23:34
Цитата Сообщение от delfamur Посмотреть сообщение
блин, ну тут же почти обычная сортировка.используй второй массив. создаешь цикл, ишешь нулевые элементы, забиваешь в новый массив, далее ищешь отрицательные, забиваешь дальше ну и положительные...
Ага, разведем 20 массивов и будет счастье, да?
Задача решается за два прохода по массиву.
Вот решение с использованием STL:
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
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <iterator>
#include <algorithm>
#include <functional>
#include <ctime>
#include <cstdlib>
 
const int min_value = -100;
const int max_value = 101;
 
void InitializeRandom() {
  std::srand(std::time(NULL));
}
 
int Random() {
  return min_value + std::rand() % (max_value - min_value);
}
 
int main() {
  const int size      = 50;
        int arr[size];
 
  InitializeRandom();
  std::generate(arr, arr + size, Random);
 
  std::copy(arr, arr + size, std::ostream_iterator<int>(std::cout, " "));
  std::cout << std::endl;
 
  int* it = std::stable_partition(arr, arr + size, std::bind2nd(std::equal_to<int>(), 0));
       it = std::stable_partition(it , arr + size, std::bind2nd(std::less    <int>(), 0));
            std::stable_partition(it , arr + size, std::bind2nd(std::greater <int>(), 0));
 
  std::copy(arr, arr + size, std::ostream_iterator<int>(std::cout, " "));
  std::cout << std::endl;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru