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

Массивы: выбрать элементы меньше нуля и отсортировать их по убыванию - C++

Восстановить пароль Регистрация
 
nazsal
2 / 2 / 0
Регистрация: 27.11.2011
Сообщений: 60
18.04.2012, 19:34     Массивы: выбрать элементы меньше нуля и отсортировать их по убыванию #1
В массиве с 5 чисел найти элементы меньше нуля и отсортировать их по убыванию
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2012, 19:34     Массивы: выбрать элементы меньше нуля и отсортировать их по убыванию
Посмотрите здесь:

C++ Найти максимальный элемент. Отсортировать предшествующие ему элементы по убыванию, а следующие за ним элементы по возрастанию.
Сформировать из элементов матрицы меньше нуля одномерный массив, отсортировать его по убыванию методом выбора C++
Отсортировать элементы заданного массива L по убыванию элементов и найти... C++
Одномерные массивы: найти средние арифметическое тех элементов, которые меньше нуля C++
C++ Отсортировать элементы массива по убыванию
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.04.2012, 19:44     Массивы: выбрать элементы меньше нуля и отсортировать их по убыванию #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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <random>
#include <vector>
#include <algorithm>
#include <cstdlib>
#include <iomanip>
 
int main()
{
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> uid(-5, 5);
    const std::size_t size = 10;
    std::vector<int> v(size);
    std::generate(v.begin(), v.end(), [&uid, &gen] () { return uid(gen); });
    for(const auto& elem: v)
        std::cout << std::setw(4) << elem;
    std::cout   <<  std::endl
                <<  std::count_if
                    (
                        v.begin(),
                        v.end(),
                        [] (const int& elem)
                        {
                            return elem < 0;
                        }
                    )
                <<  std::endl;
    std::sort
    (
        v.begin(),
        v.end(),
        [] (const int& f, const int& s)
        {
            return f < 0 && s < 0 && f > s;
        }
    );
    for(const auto& elem: v)
        std::cout << std::setw(4) << elem;
    std::cout << std::endl;
    return 0;
}
bz_
6 / 6 / 1
Регистрация: 10.04.2012
Сообщений: 31
18.04.2012, 19:53     Массивы: выбрать элементы меньше нуля и отсортировать их по убыванию #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int c[5];
    for (int i = 0; i < 5; i++) c[i] = rand() % 11 + (-5);
    for (int i = 0; i < 5; i++){
        if (c[i] < 0){
            for (int j = (i + 1); j < 5; j++){
                if (c[j] < c[i]){
                    int tmp = c[j];
                    c[j] = c[i];
                    c[i] = tmp;
                }
            }
        }
        cout << c[i] << endl;
    }
nazsal
2 / 2 / 0
Регистрация: 27.11.2011
Сообщений: 60
18.04.2012, 20:05  [ТС]     Массивы: выбрать элементы меньше нуля и отсортировать их по убыванию #4
bz_, Спасибо
bz_
6 / 6 / 1
Регистрация: 10.04.2012
Сообщений: 31
18.04.2012, 20:07     Массивы: выбрать элементы меньше нуля и отсортировать их по убыванию #5
C++
1
if (c[j] < c[i])
Поменяй на ">", ибо там получается по возрастанию.
Yandex
Объявления
18.04.2012, 20:07     Массивы: выбрать элементы меньше нуля и отсортировать их по убыванию
Ответ Создать тему
Опции темы

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