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

Сортировка подсчетом с++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ бинарное дерево по заданому выражению http://www.cyberforum.ru/cpp-beginners/thread988247.html
Построить и вывести на экран бинарное дерево следующего выражения: 9 + 8 * (7 + (6 * (5 + 4) - (3 - 2)) +1) Написать функции постфиксного, инфиксного и префиксного обхода дерева и вывести соответствующие выражения на экран. Во время тестирования программы необходимо : проверить правильность ввода и вывода данных (т.е. их соответствие необходимому типа и формата ) . Обеспечить адекватную...
C++ реализация стека массивом При реализации стека массивом обеспечить размещение двух стеков в одном массиве. Один стек размещается в начале массива и растет до конца, а второй располагается в конце массива и растет к началу. Заполнить и освободить стеки произвольным образом, вводя значения с клавиатуры. Элементами стека является действительные числа. В виде списка реализовать один стек. Как такое сделать ? http://www.cyberforum.ru/cpp-beginners/thread988245.html
приоритет операций в калькуляторе C++
В целом программа работает нормально, но с минусом косячина конкретная! вот код верхней функции double func() { double res=func1(); char c=cin.get(); switch (c) { case '+': res+=func(); break; case '-': res+=func();
C++ класс матрица
Пытаюсь сделать класс матрица. Т.к. для определения массива в с++ нужны static const, а матрица может быть произвольной, было принято решение использовать vector. Такая штука #include <vector> #include <iostream> using namespace std; int main() {
C++ И снова Лафоре. Глава 9, упражнение 12 http://www.cyberforum.ru/cpp-beginners/thread988226.html
Ищу красивое лаконичное решение, либо подсказку Рассмотрим старую Британскую платежную систему фунты-стерлинги- пенсы (см. упражнение 10 главы 4 «Структуры»). Пенни в дальнейшем делятся на фартинги и полупенни. Фартинг — это 1/4 пенни. Существо- вали монеты фартинг, полфартинга и пенни. Любые сочетания монет вы- ражались через восьмые части пенни: 1/8 пенни — это полфартинга; 1/4 пенни — это...
C++ ввести список из 10 фамилий, расположенных в произвольном порядке и упорядочить их по алфавиту Помогите пожалуйста.Вот задание:"ввести список из 10 фамилий, расположенных в произвольном порядке и упорядочить их по алфавиту" подробнее

Показать сообщение отдельно
Tima0406
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 4
26.10.2013, 00:44     Сортировка подсчетом с++
Всем привет. Есть такая проблемка. vs2010 выдает "Прекращена работа программы". Задание - ввод данных в массив, его нужно отсортировать сортировкой подсчетом и применить бинарный поиск к отсортированному массиву. После ввода данных вылетает "Прекращена работа программы". Бинарный поиск работает верно. Помогите, пожалуйста!!
Код на с++:

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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include <iostream>
using namespace std;
 
class CountingSort
{
public:
    int N;
    int M;
    int *arr;
    int *temp;
    int *out;
    int number;
     CountingSort()
    {
        cout<< "Input number of keys from 0 up to 255: \n";
        cin>> N;
        cout<< "Input number of keys from output: \n";
        cin>> M;
        arr = new int[N];
    }
    void input();
    void Counting_Sort();
    int binary(int);
    void output();
};
 
void CountingSort::input()
{
    cout<< "Input keys: \n";
    
    for (int i = 0; i< N; i++)
    {
        cin>>arr[i];
    }
    cout<< "Initial array: \n";
    for (int i = 0; i< N; i++)
        cout<<arr[i] << "  ";
}
 
void CountingSort::Counting_Sort()
{    
    
 
    number = 256;
    for(int i=0;i<=number;i++)
        temp[i]=0;
    for(int j=0;j<N;j++)
        temp[arr[j]]=temp[arr[j]]+1;
    for(int i=1;i<=number;i++)
        temp[i]=temp[i]+temp[i-1];
    for(int j=N-1;j>=0;j--){
        out[temp[arr[j]]-1]=arr[j];
        temp[arr[j]]=temp[arr[j]]-1;
   
        free(out);
        free(temp);
        
    }
}
 
int CountingSort::binary(int x)
{
    int low, high, mid;
 
low = 0;
high = N - 1;
while(low <= high)
    {
mid = (low + high) / 2; 
if(x <arr[mid])              
high = mid - 1;
else if(x >arr[mid])
low = mid + 1;
else
return mid;
    }
return -1;
}
 
void CountingSort::output()
{int k;
    cout<< "\n" << "Sorted array: \n";
    for (int i = 0; i< N; i++)
 
        cout<<out[i] << "  ";
    for (int j = 0; j < M; j++)
    {
        cout<< "\n" << "Input key for search: \n";
        cin>> k;
        if(binary(k) < 0)
            cout<< "There is no such key!\n";
        else
            cout<< "The index of the key is: " << binary(k) + 1 << "\n";
    }
}
 
int main()
{
    CountingSort cs;
    cs.input();
    cs.Counting_Sort();
    cs.output();
}
Заранее Спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru