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

Упорядочите массив S(13) в порядке убывания модулей его членов. - C++

Восстановить пароль Регистрация
 
sanleo
3 / 3 / 0
Регистрация: 21.05.2010
Сообщений: 54
15.10.2011, 11:26     Упорядочите массив S(13) в порядке убывания модулей его членов. #1
Упорядочите массив S(13) в порядке убывания модулей его членов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2011, 11:26     Упорядочите массив S(13) в порядке убывания модулей его членов.
Посмотрите здесь:

C++ Массив в порядке убывания
C++ Задан целочисленный массив размера N. Отсортировать серии в массиве в порядке убывания их длины
Сформировать файл из действительных чисел. Найти расположенные в порядке убывания их модулей C++
Упорядочите элементы массива по убыванию модулей элементов C++
Массив структур. Должники в порядке убывания C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
15.10.2011, 11:34     Упорядочите массив S(13) в порядке убывания модулей его членов. #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
#include <iostream>
#include <algorithm>
#include <math.h>
#include <vector>
 
bool max1 (int a, int b)
{
    return (abs(a)>abs(b));
}
 
 
int main()
{
    std:: vector <int> v;
    int n,c;
    std:: cin >> n;
    for (int i=0;i<n;++i)
    {
        std:: cin >> c;
        v.push_back(c);
    }
 
    std::sort(v.begin(),v.end(),max1);
    for (int i=0;i<v.size();++i)
        std:: cout << v[i] << " ";
    system ("pause");
    return 0;
}
Байт
 Аватар для Байт
13973 / 8804 / 1227
Регистрация: 24.12.2010
Сообщений: 15,949
15.10.2011, 11:37     Упорядочите массив S(13) в порядке убывания модулей его членов. #3
Простейшее - "Пузырек"
C
1
2
3
4
5
6
7
for(j=0; j<N-1; j++) {
  for(i=j; i<N-1; i++) {
    if (fabs(S[i]) < fabs(S[i+1]) {
       tmp = S[i]; S[i] = S[i+1]; S[i+1] = tmp;
    }
  }
}
Ma3a
Эксперт C++
612 / 456 / 31
Регистрация: 28.01.2011
Сообщений: 605
15.10.2011, 11:43     Упорядочите массив S(13) в порядке убывания модулей его членов. #4
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
#include <iostream>
#include <random>
#include <vector>
#include <functional>
#include <ctime>
#include <algorithm>
#include <cmath>
 
struct modulus_compare
   {
   bool const operator() (int const left, int const right) const
      {
      return std::abs(left) > std::abs(right);
      }
   };
 
int main()
   {
   std::vector<int> S(13);
   
   std::mt19937 engine;
   engine.seed(std::time(0));
   std::uniform_int_distribution<> gen(-100, 100);
   
   std::generate(S.begin(), S.end(), std::bind(gen, engine));
   
   std::sort(S.begin(), S.end(), modulus_compare());
   
   for(int const val : S)
      std::cout << val << ' ';
   std::cout << std::endl;
   }
Байт
 Аватар для Байт
13973 / 8804 / 1227
Регистрация: 24.12.2010
Сообщений: 15,949
15.10.2011, 11:45     Упорядочите массив S(13) в порядке убывания модулей его членов. #5
Dani, Мне все-таки кажется, что ТС интересует АЛГОРИТМ, а не использование библиотечных функций. Если я ошибаюсь, то можно предложить и такое
C
1
2
3
4
5
6
7
8
9
10
cmp(double *a, double *b)
{ 
  return(fabs(*a) > fabs(*b));
}
main()
{
  // Объявления и ввод
  qsort(S, N, sizeof(double), cmp);  // Мог перепутать порядок параметров
  // Вывод
}
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
15.10.2011, 11:47     Упорядочите массив S(13) в порядке убывания модулей его членов. #6
Цитата Сообщение от Байт Посмотреть сообщение
интересует АЛГОРИТМ, а не использование библиотечных функций
про это ничего не было сказано, и ТС может нужна сортировка шелла. Поэтому я написал не опускаясь в подробности сортировки.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2011, 11:50     Упорядочите массив S(13) в порядке убывания модулей его членов.
Еще ссылки по теме:

Отсортировать массив М и строки матрицы А в порядке убывания C++
C++ Упорядочить массив в порядке убывания суммы цифр элементов
Найти максимальный элемент этого массива и отсортировать его вправо и влево в порядке убывания элементов C++

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

Или воспользуйтесь поиском по форуму:
Байт
 Аватар для Байт
13973 / 8804 / 1227
Регистрация: 24.12.2010
Сообщений: 15,949
15.10.2011, 11:50     Упорядочите массив S(13) в порядке убывания модулей его членов. #7
Dani, Ну и слава Богу. Теперь ТС есть из чего выбирать
Yandex
Объявления
15.10.2011, 11:50     Упорядочите массив S(13) в порядке убывания модулей его членов.
Ответ Создать тему
Опции темы

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