Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
3 / 3 / 2
Регистрация: 09.03.2011
Сообщений: 247

Сортировка массив действительных чисел по возрастанию

21.03.2011, 18:09. Показов 5158. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно отсортировать массив действительных чисел по возрастанию. Написал только задание массива. вот код:

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;
int main()
{
setlocale(LC_ALL,"Rus");
const int i=100;
int n;
double mas[i];
cout<<"Введите количество элементов массива (100 Max): ";
cin>>n;
if ((n<=0)||(n>100))
{
  cout<<"Введите от 0 до 100";
}
else
{
    for(int i=0; i<n; i++)
    {
        cout<<"Элемент #"<<i+1<<"= ";
        cin>>mas[i];
    }
 
}
 
    system ("pause");
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.03.2011, 18:09
Ответы с готовыми решениями:

Упорядочить обменом массив действительных чисел по возрастанию
Упорядочить обменом массив действительных чисел по возрастанию.

Упорядочить по возрастанию массив действительных чисел
упорядочить по возрастанию массив действительных чисел а1,..,аN, используя алгоритм сортировки фон неймана. P.S. товарищи!!напишите плиз...

Массив содержит 9 действительных чисел. Расположить элементы массива по возрастанию значений их модулей
Составить схему алгоритма, разработать проект формы и программу для обработки одномерного массива, в соответствии с вариантами, приведенных...

11
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
21.03.2011, 18:10
Алгоритмы сортировок
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
21.03.2011, 18:37
Недавно написал программу.
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
 
void inp(int** x,int n);
void collumn(int** x,int n);
void row(int** x,int n);
void out(int** x,int n);
void oj(int**x ,int n,int* y);
int oj(int** x,int n);
 
void main()
{
        int n;
        cout<<"n=";
        cin>>n;
        char select;
      int* y;
      int m;
        int** x=new int*[n];
 
        for(int i=0;i<n;i++)
                x[i]=new int[n];
 
                cout<<"Enter i for input"
                        <<endl<<"Enter c for collumn sort"
                        <<endl<<"Enter r for row sort"
                        <<endl<<"Enter o for out"
                        <<endl<<"Enter x for operation"
                  <<endl<<"Enter e for exit"
                        <<endl;
        for(;;)
        {
                
                        cin>>select;
                switch(select)
                {
            case 'i':
            case'I':
                     inp(x,n);
                     cout<<"complite"<<endl;
                        break;
                case 'c':
            case'C':
                     collumn(x,n);
                     cout<<"complite"<<endl;
                        break;
                case 'r':
            case 'R':
                     row(x,n);
                     cout<<"complite"<<endl;
                        break;
                case 'o':
            case 'O':
                     out(x,n);
                     cout<<"complite"<<endl;
 
                  break;
            case 'x':
            case 'X':
                  m=oj(x,n);
                  y=new int[m];
                  oj(x,n,y);
                  cout<<"complite"<<endl;
               //   delete[]y;
                        break;
                case 'e':
            case 'E':
                     return;
 
                        default: cout<<"Wrong command!"<<endl;
 
                }
 
        }
        for(i=0;i<n;i++)
                delete[] x[i];
 
        delete[] x;
 
}
 
 
void inp(int** x,int n)
{
        srand(time(0));
        for(int i=0;i<n;i++)
                for(int j=0;j<n;j++)
                        *(*(x+i)+j)=rand()%10;
}
 
void out(int** x,int n)
{
        for(int i=0;i<n;i++)
                {
                        for(int j=0;j<n;j++)
                                cout<<*(*(x+i)+j)<<" ";
                        cout<<endl;
        }
        cout<<endl;
}
 
void collumn(int** x,int n)
{
        int buff;
        bool t;
        
          for(int j=0;j<n;j++)
         {
            t=0;
            while(t==0)
               {
               t=1;
                    for(int i=0;i<n-1;i++)
                      if(*(*(x+i)+j)>*(*(x+i+1)+j))
                        {
                            buff=*(*(x+i)+j);
                            *(*(x+i)+j)=*(*(x+i+1)+j);
                            *(*(x+i+1)+j)=buff;
                            t=0;
                        }
               }
        }      
}
 
 
void row(int** x,int n)
{
        int buff;
        bool t;
             for(int i=0;i<n;i++)
          {   
             t=0;
             while(t==0)
                {
                        t=1;
                        for(int j=0;j<n-1;j++)
                          if(*(*(x+i)+j)>*(*(x+i)+j+1))
                            {
                              buff=*(*(x+i)+j);
                              *(*(x+i)+j)=*(*(x+i)+j+1);
                              *(*(x+i)+j+1)=buff;
                              t=0;
                     }  
               }
          }
}
 
 
int oj(int** x,int n)
{
   int s=0;
   for(int i=1;i<n;i++)
      for(int j=n-1; j>n-1-i;j--)
         s++;
   return s;
}
 
void oj(int**x ,int n,int* y)
{
   int c=0;
   for(int i=1;i<n;i++)
      for(int j=n-1;j>n-1-i;j--)
      {
         *(y+c++)=*(*(x+i)+j);
         cout<<*(y+c++)<<" ";
      }
 
   cout<<endl;
}
0
20 / 20 / 3
Регистрация: 18.09.2010
Сообщений: 28
21.03.2011, 19:41
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
void main()
{ const int n=15;
    int arr[n]={0};
srand(time(NULL));
for(int i=0;i<n;i++)
arr[i]=rand()%45;
/////////////////////////////////////////
for(int k=0;k<n-1;k++)//сортировка тут
for(int j=0;j<n-1;j++)
if(arr[j]>arr[j+1])
swap(arr[j],arr[j+1]);
cout<<"Sorted array"<<endl;
for(i=0;i<n;i++)
cout<<arr[i]<<endl;
}
я тут тупо задал масив и заполнил его случайными числами а сортировку взял простейшую пузырьковую ,для перестановки элементов использовал функцию swap ....надеюсь я правильно понял условие задачи ..
1
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
21.03.2011, 19:43
Ариман, функция swap () описана в библиотеке algorithm.
Без её подключения будет ошибка.
0
20 / 20 / 3
Регистрация: 18.09.2010
Сообщений: 28
21.03.2011, 19:46
странно я прогнал её в компиляторе и никакой ошибки не выскочило .Да и в учебнике небыло никакого алгоритм,юзаю правда старую 6 версию висуал студио. По крайней мере у меня все работает
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
21.03.2011, 19:52
Ариман, http://www.cplusplus.com/reference/algorithm/swap/
По правилам нужно подключить)
0
20 / 20 / 3
Регистрация: 18.09.2010
Сообщений: 28
21.03.2011, 19:54
Ну в любом случае спасибо впредь буду знать.
1
2 / 2 / 1
Регистрация: 14.03.2011
Сообщений: 27
21.03.2011, 20:28
А как сделать, чтобы пользователь задавал кол-во элементов массива, далее создавалось 2 массива (нужного размера), заполнялись случайно, потом производилось их слияние и после этого сортировка и вывод получившегося массива??
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
21.03.2011, 20:34
Я бы это сделал с помощью последовательного контейнера vector.
Но вам я думаю лучше воспользоваться динамическим массивом (воспользуйтесь поиском по форуму).

Слияние массивов можно сделать с помощью алгоритма merge (описан в библиотеке algorithm).
Сортировка с помощью алгоритма sort (algorithm).

Ну или руками все это реализовывать, можно тоже попробовать поискать по форуму.
0
2 / 2 / 1
Регистрация: 14.03.2011
Сообщений: 27
21.03.2011, 22:34
Цитата Сообщение от neske Посмотреть сообщение
Я бы это сделал с помощью последовательного контейнера vector.
Но вам я думаю лучше воспользоваться динамическим массивом (воспользуйтесь поиском по форуму).

Слияние массивов можно сделать с помощью алгоритма merge (описан в библиотеке algorithm).
Сортировка с помощью алгоритма sort (algorithm).

Ну или руками все это реализовывать, можно тоже попробовать поискать по форуму.
Мне желательно без дополнительных библиотек. Т.к. потом это все нужно объяснять преподавателю, а мы еще не дошли до различных других библиотек. Объединить 2 динамических массива в 1 на данный момент не удалось(

*массивы должны быть динамическими, заполняются методом rand(); размерность задает пользователь

Добавлено через 12 минут
C++
1
2
3
4
5
6
7
8
9
10
11
                int* A; 
        int size1,i;
        cout << "Введите размер первого массива: ";
        cin >> size1;
        A = new int [size1];
        cout << "Первый массив: ";
        for (i = 0; i < size1; i++)
        {
            A[i]=rand()%100; 
            cout << A[i] << " ";
        };
так же делается 2ой массив. А как их объединить 3им - вот загадка века, для меня =( порылся по форуму, не нашел
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
21.03.2011, 22:40
Screenly, вам крупно повезло))
Нашел я на форуме код, давно когда-то кому-то писал.

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>
void func_sort (int *, int);
 
int main ()
{
    const int size=5;
    int MAS_one[size]={1,3,5,7,9};
    int MAS_two[size]={2,4,6,8,10};
    int MAS_rez[size*2];
 
    for (int i=0; i<size; i++) { // просто объединяем.
        MAS_rez[i]=MAS_one[i];
        MAS_rez[i+size]=MAS_two[i]; }
 
    func_sort (MAS_rez, size*2); // вызываем функцию сортировки.
    for (int i=0; i<size*2; i++)
    std::cout<< " " << MAS_rez[i];
 
    std::cout << std::endl;
    system ("pause");
    return 0;
}
 
void func_sort (int *MAS, int size) // тут мы сортируем пузырьком.
{
    int tmp;
 
    for(int i=0; i < size; i++)
        for(int j = size-1; j > i; j-- )
        if ( MAS[j-1] > MAS[j] ) {
      tmp=MAS[j-1]; MAS[j-1]=MAS[j]; MAS[j]=tmp; }
}
Тут массивы статические, на динамику сами измените.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.03.2011, 22:40
Помогаю со студенческими работами здесь

Записать в файл массив действительных чисел по убыванию, а в другой файл - по возрастанию
Составить программу записи в файл F1 массива 40 действительных чисел по убыванию, а в файл F2 - по возрастанию. Массив задается в...

Упорядочить несколько предложений по возрастанию целых и уменьшению действительных чисел
Cделать как отдельную функцию с файловым потоком Для ввода задано несколько предложений. Упорядочить несколько предложений за...

Записать в файл n действительных чисел в заданном диапазоне, затем упорядочить их по возрастанию
Создать файл в котором записать n дествительных чисел полученных с случайних чисел из диапазона A до B,потом упорядочить числа файлу за ...

Сортировка действительных чисел записанных в файл
Необходимо написать программу, которая сортирует действительные числа, считанные из файла по возрастанию и выводит их в другой файл. Кто...

Вывод и сортировка массива действительных чисел
Не работает функция LinearSearch и при сортировке начинает выводить целые числа, а не действительные. в чем ошибки? #include...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru