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

Указатели, массивы. Не могу разобраться - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Оптимизация алгоритмов http://www.cyberforum.ru/cpp-beginners/thread61881.html
Привет всем). Есть задача: "Дана целочисленная прямоугольная матрица. Определить номера строк и столбцов всех седловых точек". Я решил эту задачу таким способом: 1) нахожу минимальный элемент в...
C++ Одномерный массив! Дан одномерный массив из 1000 элементов, состоящий из случайных целых чисел в диапазоне от 0 до 50. Найти сумму элементов массива, с начала массива, до первого элемента равного нулю. http://www.cyberforum.ru/cpp-beginners/thread61873.html
Удалить минимальный и максимальный элементы массива C++
новичек исщет решение вот две задачки помогите . 1.Ввести одномерный статический массив из k чисел.Удалить минимальный и максимальный элементы массива. 2.Ввести матрицу размером NxM. Память для...
функции,поправьте код пожалуста. C++
Задание : описать функцию Repl(A,B), меняющую местами максимальные элементы матриц А и В произвольного порядка. Считать, что в каждой матрице только один элемент. Я написал код для определенных...
C++ Вывести все элементы числового массива на экран http://www.cyberforum.ru/cpp-beginners/thread61844.html
Всем доброго времени суток, у меня вопрос - как вывести все элементы числового массива на экран, Массивы только что начал изучать - так что не судите строго :) #include <iostream> using...
C++ Перевод угла из радиан в градусы, минуты и секунды Всем доброго времени суток, тут написал программу, которая переводит значение угла, заданное в радианах в градусы с десятичной дробной частью, но мне необходимо чтобы программа переводила радианы в... подробнее

Показать сообщение отдельно
SONNY
8 / 8 / 0
Регистрация: 30.05.2009
Сообщений: 47
07.11.2009, 21:08
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
int* partition( int* first, int* last, int (*pred)( int ) )
    {
        for( ; ; ++first )
        {
            for( ; first != last && pred( *first ); ++first )
                ;
            if( first == last )
                break;
            for( ; first != --last && !pred( *last ); )
                ;
            if( first == last )
                break;
 
            int tmp = *first;
            *first = *last;
            *last = tmp;
        }
 
        return first;
    }
 
int less( int v_ ) { return v_ < 0 ? 1 : 0; }
int equal_to( int v_ ) { return v_ == 0 ? 1 : 0; }
 
int _tmain( int argc, _TCHAR* argv[] )
{
    int coll[] = { 12, 96, 0, 8, 0, -7, -5, 0, 12, -1 };
    partition( partition( coll, coll + 10, &less ), coll + 10, &equal_to );
}
так не проще?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru