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

Методы сортировки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ странный ostream в 2010 http://www.cyberforum.ru/cpp-beginners/thread353761.html
привет, в 2010 VS не работает ostream_iterator<int>(cout," ") copy(mas.begin(),mas.end(),ostream_iterator<int>(cout," ")); как починить? задача вывести таблицу произвольного размера типа 5 3 5 6 2 7 4 2 3 8 2 2
C++ Блуждание пьяницы и перегрузка операторов Всем привет! помогите люди добрые решить проблему. В книге по которой я учусь в качестве примера перегрузки операторов дана программа, которая осуществляет такую затею: вводится длина шага и расстояние, на которое нужно отдалиться, а программа, используя случайное число от 0 до 360 выбирает направление человека и передвигает его. Программа завершается когда человек отдаляется на указанное... http://www.cyberforum.ru/cpp-beginners/thread353760.html
C++ Помогите исправить ошибку в коде с++
Решаю задачу с вот такими вычислениями. for(x=1;x < r-1; x++) { while ((sqr(x) + sqr(y)) > sqr(r)) { y=y-1; k=k+kol(x3+x, y3-y, y3+y) + kol(x3-x,y3-y,y3+y); } k=k+kol(x3+r, y3, y3) + kol (x3-r, y3, y3);
C++ fatal error LNK1120: 1 неразрешенных внешних элементов
ту проблему исправил. #include <iostream> #include <conio.h> using namespace std; class rational { public: int a,b,c,d;
C++ Перегруженная функция http://www.cyberforum.ru/cpp-beginners/thread353705.html
У меня тут задача я её правильно написал но почему то визуалка говорит что перегруженная функция. #include <iostream> #include <cmath> #define PI 3.14159265 using namespace std; int main(){ double z1,z2,a; cout <<"vvedite a"<<endl; cin >> a; z1=(sin*(4*a))/(1+cos*(4*a))*(cos*(2*a)/1+cos*(2*a))
C++ Str в long double и наоборот Одним из недостатков C++ являеться отсутствие для бизнес-программ встроенного типа для денежных значений, такого, как $173 698 001,32. Такой денежный тип должен иметь возможность для хранения числа с фиксированноой десятичной точкой точностью около 17 знаков, которого было бы достаточно для хранения национального долга в долларах и центах.К счастью, встроенный тип С++ long bouble имеет точность... подробнее

Показать сообщение отдельно
Krol
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 49
19.09.2011, 18:41     Методы сортировки
Помогите исправить некоторые недочеты в проге.
Задание: написать программу сортировки массива, по убыванию и возрастанию.
Проблема в том, что массив сортируется только по возрастанию, по убыванию никак...

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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#include<stdio.h>
#include<locale.h>
#include<time.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
#define SWAP(A, B) { int t = A; A = B; B = t; }
int razmer = 0, vibor, vibor2, temp, k, t, last, left, right, obmen = 0, sravnenie = 0, * s, i, j = 0; char y,n;
void randomMassiv ()
{
    system("cls");
    srand ( unsigned( time ( NULL) ) );
    for( i = 0; i < razmer; i++)     
    {
        s[i] = (rand()%500);
        printf ("%d\n",s[i]);
    }
}
void incrMassiv ()
{
    system("cls");
    for( i=0; i<=razmer; i++)     
    {
        s[i]=i+100;
        printf("%d  \n",s[i]);
    }
}
void decrMassiv ()
{
    system("cls");
    for( i=500,k=0; i>500-razmer; i--,k++)     
    {
        s[k]=i;
        printf("%d  \n",s[k]);
    }
}
void insertVstavkaSort ()
{
    for ( i=1; i < razmer; i++) 
    {                           // цикл проходов, i - номер прохода
        temp = s[i];            // поиск места элемента в готовой последовательности 
        for ( j=i-1; j>=0 && s[j] > temp; j--)
        { 
            sravnenie++;
            s[j+1] = s[j];      // сдвигаем элемент направо, пока не дошли
            obmen++;
        }                       
                            // место найдено, вставить элемент
        s[j+1] = temp;
        sravnenie++;
    }
        for (k=0;k<razmer;k++)
        {
                printf ("%d\t",s[k]);
        }
        printf("\nСравнений: %d\nОбменов: %d\nСумма сравнений и обменов: %d\n",sravnenie,obmen,sravnenie+obmen);
}
void insertBubbleSort ()
{
    for (i = razmer - 1; i > 0; i--)
    {
        for (j = 0; j < i; j++)
        {
            sravnenie++;
            if (s[j] > s[j + 1]) 
            {
                SWAP( s[j], s[j + 1] );
                obmen++;
            }
        }
    }
    for (k=0;k<razmer;k++)//вывод отсортированного массива
    {
        printf ("%d\t",s[k]);
    }
    printf("\nСравнений: %d\nОбменов: %d\nСумма сравнений и обменов: %d\n",sravnenie,obmen,sravnenie+obmen);
}
int main ()
{   
    setlocale(LC_CTYPE,"rus");
    system("cls");
    printf("Введите размерность массива:\n");
    scanf("%d",&razmer);
    s = (int *)calloc(razmer, sizeof(int));
    system("cls");
    printf("Выберите нужный тип массива:\n");
    printf("1. Случайный массив\n");
    printf("2. Отсортированный по возрастанию\n");
    printf("3. Отсортированный по убыванию\n");
    scanf ("%d",&vibor);
    switch (vibor)
    {
    case 1:
        {
            randomMassiv();
            break;
        }
    case 2:
        {
            randomMassiv();
            printf ("\n");
            incrMassiv();
            break;
        }
    case 3:
        {
            randomMassiv();
            printf ("\n");
            decrMassiv();
            break;
        }
    }
    // SORTIROVKA
    system ("cls");
    printf ("Выберите метод сортировки\n\n");
    printf ("1. Метод простых включений\n\n");
    printf ("2. Метод пузырька\n");
    scanf ("%d",&vibor2);
    switch (vibor2)
    {
    case 1:
        {
            randomMassiv();
            printf ("\n");
            insertVstavkaSort();
            break;
        }
    case 2:
        {
            randomMassiv();
            printf ("\n");
            insertBubbleSort ();
            break;
        }
    }
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru