Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
M0nter
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 5
1

Упорядочить элементы массива по убыванию

06.04.2017, 21:19. Просмотров 1369. Ответов 25
Метки нет (Все метки)

В одномерном массиве, состоящем из n действительных элементов, найдите
3) упорядочение элементы массива по убыванию.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2017, 21:19
Ответы с готовыми решениями:

В одномерном массиве все отрицательные элементы заменить нулями и упорядочить элементы массива по убыванию
В одновимірному масиві всі від’ємні елементи замінити нулями і впорядкувати елементи масиву за...

Упорядочить элементы массива по убыванию
УКР Дано масив з N речовинних чисел. Упорядкувати елементи масиву за спаданням. Визначити суму...

Упорядочить элементы массива по убыванию
Массив А (n и m вводятся с клавиатуры), заполнить случайными числами. Выполнить следующие...

Упорядочить элементы массива по убыванию
упорядочить элементы массива по убыванию.......написал программу ....зависает и выключается после...

Упорядочить элементы массива Z по убыванию
Помогите решить пожалуйста.Можно с коментариями, просто недавно начал учить. Задача Сгенерировать...

25
Hitoku
1726 / 1321 / 1405
Регистрация: 28.10.2016
Сообщений: 4,265
Завершенные тесты: 4
07.04.2017, 03:46 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
#include "stdafx.h"
#include <iostream>
#define Left 1
#define Right 50
 
using namespace std;
 
int main()
{
    int n; cin >> n;
    float *a = new float[n];
    for (int i = 0; i < n; i++)
    {
        float r = (float)rand() / RAND_MAX;
        a[i] = Left + (Right - Left) * r;
        cout << a[i] << " ";
    }
    cout << endl;
    for (int i = 0; i < n - 1; i++)
        for (int j = i; j < n; j++)
            if (a[i] < a[j]) swap(a[i], a[j]);
    for (int i = 0; i < n; i++)
        cout << a[i] << " ";
    cout << endl;
    system("pause");
}
0
Manowar
1702 / 577 / 186
Регистрация: 12.03.2016
Сообщений: 2,164
Завершенные тесты: 1
07.04.2017, 08:31 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::vector <int> v{ -3,5,4,0,3,-10,7,8,-6 };
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, "  "));
    std::cout << std::endl << " -----------------" << std::endl;
    sort(v.begin(), v.end());
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, "  "));
    system("pause");
}
Добавлено через 1 час 57 минут
Заменить 12 строчку на
C++
1
sort(v.begin(), v.end(), [](int x, int y) { return x > y; });
чтобы по убыванию.
0
gavrasio
-16 / 14 / 3
Регистрация: 22.01.2013
Сообщений: 154
07.04.2017, 12:12 4
А, не так:
C++
1
sort(rbegin(v), rend(v));
И, ещё. Можно один раз определить функцию:
C++
1
void printVec(vector<int>& v) {for (int a : v){cout << a << " ";}} //выводим все элементы
И потом делать вывод любого вектора:
C++
1
 printVec(X);
Добавлено через 5 минут
C++
1
sort(rbegin(v), rend(v));
0
07.04.2017, 12:12
Manowar
1702 / 577 / 186
Регистрация: 12.03.2016
Сообщений: 2,164
Завершенные тесты: 1
07.04.2017, 12:17 5
Цитата Сообщение от gavrasio Посмотреть сообщение
И, ещё. Можно один раз определить функцию:
Можно, да скопировать быстрее.
0
MrGluck
Форумчанин
Эксперт CЭксперт С++
8142 / 4993 / 1436
Регистрация: 29.11.2010
Сообщений: 13,460
07.04.2017, 13:58 6
Можно 3-м параметров у std::sort использовать готовый функтор std::greater<int>()

Добавлено через 32 секунды
Hitoku, память не забывайте освобождать
0
Manowar
1702 / 577 / 186
Регистрация: 12.03.2016
Сообщений: 2,164
Завершенные тесты: 1
07.04.2017, 14:08 7
Цитата Сообщение от MrGluck Посмотреть сообщение
использовать готовый функтор std::greater<int>()
Есть такое дело, подзабыл о нем.
0
gavrasio
-16 / 14 / 3
Регистрация: 22.01.2013
Сообщений: 154
07.04.2017, 14:10 8
Где в Стандартной надо память освобождать?
0
Ferrari F1
795 / 525 / 157
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
07.04.2017, 14:18 9
мановар,
C++
1
    sort(v.rbegin(), v.rend());
0
Manowar
1702 / 577 / 186
Регистрация: 12.03.2016
Сообщений: 2,164
Завершенные тесты: 1
07.04.2017, 14:23 10
Ferrari F1, да знаю я, просто так захотелось. (Иногда не то что чужие, свои желания не объяснишь).
0
gavrasio
-16 / 14 / 3
Регистрация: 22.01.2013
Сообщений: 154
07.04.2017, 14:26 11
C++
1
#define all(c) c.begin(),c.end()
Посмотри, может, захочешь.
0
MrGluck
Форумчанин
Эксперт CЭксперт С++
8142 / 4993 / 1436
Регистрация: 29.11.2010
Сообщений: 13,460
07.04.2017, 15:21 12
Цитата Сообщение от gavrasio Посмотреть сообщение
Посмотри, может, захочешь.
Надеюсь, никто этот говнокод использовать не будет.
Пример (один из множества):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <bitset>
#define all(c) c.begin(),c.end()
 
int main()
{
    std::bitset<4> b1("0000");
    std::bitset<4> b2("0101");
    std::bitset<4> b3("1111");
 
    std::cout << "bitset\t" << "all\t" << "any\t" << "none\n";
    std::cout << b1 << '\t' << b1.all() << '\t' << b1.any() << '\t' << b1.none() << '\n';
    std::cout << b2 << '\t' << b2.all() << '\t' << b2.any() << '\t' << b2.none() << '\n';
    std::cout << b3 << '\t' << b3.all() << '\t' << b3.any() << '\t' << b3.none() << '\n';
}
Взято отсюда:
http://en.cppreference.com/w/cpp/utility/bitset/all_any_none
с добавлением этого дефайна.

Как объявит какой-нибудь уникум этот дефайн в заголовочном файле, так и получай кучу непонятных сообщений от компилятора.

Добавлено через 1 минуту
Другой пример:
C++
1
2
3
4
5
6
7
8
#define all(c) c.begin(),c.end()
 
struct Foo
{
    int* all() { return data; }
protected:
    int data[42];
};
И т.д. и т.п.
0
Manowar
07.04.2017, 15:22
  #13

Не по теме:

Цитата Сообщение от MrGluck Посмотреть сообщение
Надеюсь, никто этот говнокод использовать не будет.
:D:good:

0
gavrasio
-16 / 14 / 3
Регистрация: 22.01.2013
Сообщений: 154
07.04.2017, 16:24 14
Этот гавмакомнд я Вам написал только для того, что бы Вы своим кодом выводом на нас не засоряли свой код непотребными букавами. Но, с Вами согласен. Должно быть понятно и мне! Это в своих личных, для себя должно быть понятно. Ваши вопросы?
Ваш, приведённый, я читаю с лёта.
Даже all()+1 я читаю так, как гавнодав.

Добавлено через 54 минуты
Так , где? Память надо освобождать?
0
MrGluck
Форумчанин
Эксперт CЭксперт С++
8142 / 4993 / 1436
Регистрация: 29.11.2010
Сообщений: 13,460
07.04.2017, 16:33 15
Цитата Сообщение от gavrasio Посмотреть сообщение
Так , где? Память надо освобождать?
Из темы в тему Hitoku, таскает пример плохого кода с выделением памяти через new[] и отсутствием её освобождения в операторе delete[].
В конкретном примере нужно дописать delete[] a; до или после строчки с вызовом system.
0
gavrasio
-16 / 14 / 3
Регистрация: 22.01.2013
Сообщений: 154
07.04.2017, 18:04 16
Нет там нью и дэлит. Оно в динамике.( это - для чайников). Типа Джава.

Добавлено через 16 минут
В данной при завершении освободится деструктором по умолчанию и окончательно.

Добавлено через 2 минуты
Цитата Сообщение от MrGluck Посмотреть сообщение
Как объявит какой-нибудь уникум этот дефайн в заголовочном файле, так и получай кучу непонятных сообщений от компилятора.
Какой ты был, - такой ты и остался!

Добавлено через 35 минут
Цитата Сообщение от gavrasio Посмотреть сообщение
В данной при завершении освободится деструктором по умолчанию и окончательно.
Это только в Стардартной. В нативных, конечно, надо освобождать.
0
GbaLog-
Любитель чаепитий
3208 / 1511 / 472
Регистрация: 24.08.2014
Сообщений: 5,289
Записей в блоге: 1
Завершенные тесты: 2
07.04.2017, 18:32 17
Цитата Сообщение от gavrasio Посмотреть сообщение
Это только в Стардартной.
для любых автоматических объектов RAII работает, а не только для стандартной библиотеки.
0
gavrasio
-16 / 14 / 3
Регистрация: 22.01.2013
Сообщений: 154
07.04.2017, 19:09 18
Для чего сделано:
C++
1
   transform(Arr1.begin(), Arr1.end(), Arr2.begin(), back_inserter(Y), [](auto a, auto b){ return a+b;}); //cуммируем
Итак сделано:
C++
1
   for_each(Arr1.begin(), Arr1.end(), [&Y](auto a) {if (a > 0) Y.push_back(a); }); //положителные в массив Y
Как ты думаешь?

Добавлено через 15 минут
В Чём раз"д"ница?
0
GbaLog-
Любитель чаепитий
3208 / 1511 / 472
Регистрация: 24.08.2014
Сообщений: 5,289
Записей в блоге: 1
Завершенные тесты: 2
07.04.2017, 19:44 19
Цитата Сообщение от gavrasio Посмотреть сообщение
В Чём раз"д"ница?
разница в том, что ты свой бред понимаешь, а я твой бред не понимаю.
совершенно две разные функции, которые выполняют совершенно разные вещи.
1
gavrasio
-16 / 14 / 3
Регистрация: 22.01.2013
Сообщений: 154
07.04.2017, 19:55 20
Ты пробовал?
Я для того и спросил, чтобы задницу сказали. Чего ты не сказал?
В кодах.
Результат - один и тотже.
0
07.04.2017, 19:55
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2017, 19:55

Упорядочить элементы массива по убыванию
В одномерном массиве,состоящем из n вещественных элементов,вычислить: 1)Сумму элементов...

Найти минимальный и максимальный элементы массива и упорядочить элементы по убыванию, стоящие между ними, методом «пузырька».
Привет ВСЕМ!!! Обратите вниминие на эту задачку, ПЛЗ!!! =) Можно и без метода &quot; пузырька&quot;!!! Дан...

Упорядочить элементы массива по убыванию модулей элементов
2)Упорядочить элементы массива по спаданию модулей элементов. (Visual studio)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.