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

Реализовать сортировку функции по возрастанию или по убыванию, направление должнен указывать пользователь - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ ofstream std::ios::binary http://www.cyberforum.ru/cpp-beginners/thread820707.html
почему не сохраняет в бинарном виде? std::ofstream out_m(str_m, std::ios::binary); for(int i = 0; i < counter_m; i++) { tmp_m = save(&temp_m); if(i != counter_m - 1) out_m <<...
C++ Функция поиска в файле Приветствие=) Нужно написать код на C++ который будит спрашивать поочередно название файла для чтения, город и часть города, примерно так: ... http://www.cyberforum.ru/cpp-beginners/thread820700.html
Потоки C++
Кто может скинуть какую-нибуть хорошую статью по ПОТОКАМ? читал про них в книге Шилдт "С++ Базовый курс", но мало что понял((
C++ Записать в файл g, компоненты файла f, исключив повторное вхождения чисел
Дан файл f, компоненты которого являются целыми числами. Записать в файл g, компоненты файла f, исключив повторное вхождения чисел
C++ Сортировка массива методом слияния http://www.cyberforum.ru/cpp-beginners/thread820684.html
#include <iostream> #include <fstream> #include <cstdlib> #include <cmath> using namespace std; double *a,*b,tmp; int n,k,ch1,ch2,h,i,j; int main()
C++ Чтение самплов из wav файла в массив Всем привет!!! Ситуация такая: Заголовок успешно читаю. Хочу получить массив с самплами. Проблема: Не понимаю как преобразовать битовое представление. Цель: Необходимость выводить в виде... подробнее

Показать сообщение отдельно
anmartex
...
1708 / 1201 / 496
Регистрация: 12.02.2013
Сообщений: 1,978
28.03.2013, 09:00
Вообще-то вы разделом ошиблись. Это раздел для C, а не C++.

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
template <class T>
bool decrease(const T& a, const T& b)
{
   return (a < b);
}
 
template <class T>
bool increase(const T& a, const T& b)
{
   return (a > b);
}
 
template <class T>
void sort(T ar[], int size,  int trend)
{
   T x;
 
   bool (*compare)(const T&, const T&) = (trend == 1) ? increase<T> : decrease<T>;
 
   //Пузырьковый метод сортировки
   for (int i = 0; i < size; i++)
   {
      for (int j = size - 1; j > i; j--)
      {
         if (compare(ar[j - 1], ar[j]))
         {
            x = ar[j - 1];
            ar[j - 1] = ar[j];
            ar[j] = x;
         }
      }
   }
}
 
int main()
{
   srand(time(NULL));
   const int size = 10;
   int array[size];
   int trend = 1;
 
   //Заполнение массива
   for (int i = 0; i < size; i++)
   {
      array[i] = rand() % 100;
      cout << array[i] << " ";
   }
   cout << endl << endl;
 
   //Объявление в какую сторону сортировать
   cout << "Trend sort 1= from smaller before greater" << endl
        << "0= from greater before smaller number array" << endl << endl;
   cin >> trend;
 
   //Вызов функции
   sort(array, size, trend);
 
   for (int j = 0; j < size; j++)
   {
      cout << array[j] << " ";
   }
   cout << endl << endl;
 
   return 0;
}
Добавлено через 21 минуту
А лучше, наверное, даже так:
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <iostream>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
template <class T>
bool decrease(const T& a, const T& b)
{
   return (a < b);
}
 
template <class T>
bool increase(const T& a, const T& b)
{
   return (a > b);
}
 
template <typename T, typename F>
void sort(T ar[], int size, F compare)
{
   T x;
 
   //Пузырьковый метод сортировки
   for (int i = 0; i < size; i++)
   {
      for (int j = size - 1; j > i; j--)
      {
         if (compare(ar[j - 1], ar[j]))
         {
            x = ar[j - 1];
            ar[j - 1] = ar[j];
            ar[j] = x;
         }
      }
   }
}
 
int main()
{
   srand(time(NULL));
   const int size = 10;
   int array[size];
   int trend = 1;
 
   //Заполнение массива
   for (int i = 0; i < size; i++)
   {
      array[i] = rand() % 100;
      cout << array[i] << " ";
   }
   cout << endl << endl;
 
   //Объявление в какую сторону сортировать
   cout << "Trend sort 1= from smaller before greater" << endl
        << "0= from greater before smaller number array" << endl << endl;
   cin >> trend;
 
   //Вызов функции
   if (trend)
   {
      sort(array, size, increase<int>);
   }
   else
   {
      sort(array, size, decrease<int>);
   }
 
   for (int j = 0; j < size; j++)
   {
      cout << array[j] << " ";
   }
   cout << endl << endl;
 
   return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru