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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
yulla
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 59
#1

Сортировка различного типа чисел - C++

14.01.2013, 17:47. Просмотров 492. Ответов 7
Метки нет (Все метки)

программа сортирует числа одного типа, а как можно сделать так, чтобы сортировались разные типы чисел?

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
#include <iostream>
using namespace std;
const int n=5;
template<class T>
void sort(T a[])
{
    T buffer;
    for (int i=0;i<n;i++)
        for (int j=0;j<n-1;j++)
            if (a[j+1]<a[j])
            {
                buffer=a[j+1];
                a[j+1]=a[j];
                a[j]=buffer;
            }
}
int main()
{
    int a[n]={4,1,3,2,11};
    sort(a);
    
    for (int i=0;i<n;i++)
        cout<<a[i]<<"  ";
    cout<<endl;
    system("PAUSE");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2013, 17:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка различного типа чисел (C++):

Создание классов с использованием конструкторов различного типа - C++
Здраствуйте!, появилась проблемка с работой, чего-то не доганаю....=) Задание: Разработать программу на С++ использующую класс...

Сортировка чисел типа char с сохранением привязанного к этой цифре слова. VS2013 - C++
Это одна из функций программы которая читает с .txt файла строки, в одной строке название команды в другой количество набранных очков....

Определите объединения, элементами которого являются массивы из трех чисел типа long и с шести чисел типа int - C++
Определите объединения, элементами которого являются массивы из трех чисел типа long и с шести чисел типа int. Значение элементов...

Преобразовать сроку чисел CHAR в массив чисел типа int - C++
Помогите реализовать идею... Прегнать введённую сроку чисел char в массив int ... чтоб элемент char str соответсвовал int mas.... ...

Сортировка значений типа char - C++
Здравствуйте, есть у меня структура: ФИО ученика и класс в котором он учится. Класс состоит из цифры и буквы. Как можно отсортировать...

Сортировка массива произвольного типа - C++
Помогите разобраться! зачем swap и memswap для сортировки в этой программе inline void swap(char&amp; a, char&amp; b)// Обмениваем элементы...

7
Schizorb
510 / 462 / 16
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
Завершенные тесты: 1
14.01.2013, 18:10 #2
yulla, ну так у вас же есть шаблон функции. Можно использовать для разных типов. Например:

C++
1
2
double a[n]={4.5,1.45,3.5,2.44,11.12};
sort(a);
или

C++
1
2
char a[n]={'a','d','e','c','b'};
sort(a);
0
yulla
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 59
14.01.2013, 18:18  [ТС] #3
Schizorb, нет, в программе одновременно должны сортироваться два типа чисел
0
v.a.l.i.d
413 / 378 / 10
Регистрация: 21.09.2012
Сообщений: 913
14.01.2013, 18:23 #4
Цитата Сообщение от yulla Посмотреть сообщение
в программе одновременно должны сортироваться два типа чисел
А поподробнее
0
yulla
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 59
14.01.2013, 18:30  [ТС] #5
ну, примерно так, хотя здесь куча ошибок

Код
1>c:\users\1\documents\visual studio 2010\projects\55656\55656\4567890.cpp(5): error C2988: неопознанное объявление или определение шаблона
1>c:\users\1\documents\visual studio 2010\projects\55656\55656\4567890.cpp(5): error C2059: синтаксическая ошибка: ,
1>c:\users\1\documents\visual studio 2010\projects\55656\55656\4567890.cpp(24): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>c:\users\1\documents\visual studio 2010\projects\55656\55656\4567890.cpp(24): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
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
#include <iostream>
using namespace std;
const int n=5;
template<class T>
void sort(T a[]), sort (T b[])
{
    T buffer;
    for (int i=0;i<n;i++)
        for (int j=0;j<n-1;j++)
            if (a[j+1]<a[j])
            {
                buffer=a[j+1];
                a[j+1]=a[j];
                a[j]=buffer;
            }
 if (b[j+1]<b[j])
            {
                buffer=b[j+1];
                b[j+1]=b[j];
                b[j]=buffer;
            }
}
int main()
{
    int a[n]={4,1,3,2,11};
    sort(a);
    
    for (int i=0;i<n;i++)
        cout<<a[i]<<"  ";
    cout<<endl;
    double b[n]={4.5,1.45,3.5,2.44,11.12};
    sort(b);
    
    for (int i=0;i<n;i++)
        cout<<b[i]<<"  ";
    cout<<endl;
    system("PAUSE");
    return 0;
}
0
Schizorb
510 / 462 / 16
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
Завершенные тесты: 1
14.01.2013, 18:32 #6
yulla, функцию-то менять не нужно.

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
#include <iostream>
using namespace std;
const int n=5;
template<class T>
void sort(T a[])
{
    T buffer;
    for (int i=0;i<n;i++)
        for (int j=0;j<n-1;j++)
            if (a[j+1]<a[j])
            {
                buffer=a[j+1];
                a[j+1]=a[j];
                a[j]=buffer;
            }
}
 
int main()
{
    int a[n]={4,1,3,2,11};
    sort(a);
    
    for (int i=0;i<n;i++)
        cout<<a[i]<<"  ";
        
    cout<<endl;
    double b[n]={4.5,1.45,3.5,2.44,11.12};
    sort(b);
    
    for (int i=0;i<n;i++)
        cout<<b[i]<<"  ";
    cout<<endl;
    system("PAUSE");
    return 0;
}
1
yulla
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 59
14.01.2013, 18:36  [ТС] #7
Schizorb, спасибо большое!)
0
Avazart
Эксперт С++
7236 / 5432 / 304
Регистрация: 10.12.2010
Сообщений: 24,143
Записей в блоге: 17
14.01.2013, 18:58 #8
C++
1
void sort(T a[])
Только выглядит не очень, впихните n в параметры
C++
1
void sort(T* a,size_t n);
Ну или в stl-стиле перепешите
C++
1
void sort(T* first,T* last);
0
14.01.2013, 18:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2013, 18:58
Привет! Вот еще темы с ответами:

Сортировка массивов разного типа - C++
Само задание: Массив данных заполняется случайным образом. Рассмотреть массивы данных из элементов типа char и double. Использовать...

Сортировка массива с числами типа double - C++
Привет. Написал прогу подчитывающую кол-во одинаковых символов в тексте. И посчитал вероятность их появления. А упорядочить вероятности в...

Сортировка цифр в строке типа char - C++
Здравствуйте! Помогите, пожалуйста, дописать программу. Прогррамма должна сортировать буквы или цифры во введенной строке. Например...

Перегрузка типа int и double и сортировка - C++
Дано задание: В одномерном массиве состоящем из n элементов вычислить: 1 номер минимального по модулю элемента. 2 сумму модулей...


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

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

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