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

C++ Сортировка массива методом Min и Max | Не работает программа - C++

Восстановить пароль Регистрация
 
Anastaci9l
0 / 0 / 0
Регистрация: 11.10.2013
Сообщений: 5
11.10.2013, 22:50     C++ Сортировка массива методом Min и Max | Не работает программа #1
Читала темы на форумах про сортировки и вроде бы пришла к нормальному коду, но при выводе отсортированного массива на экран он выводит слова. Не могли бы вы помочь мне с этой проблемой?
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
#include <iostream>
#include <conio.h>
#include <time.h>
 
using namespace std;
 
void main ()
{
    setlocale(LC_ALL, "Russian");
    srand(time(NULL));
    int size;
    int num;
    int i,j;
    int min,max;
    int m;
    
    cout << "Введите размер массива: ";
    cin >> size;
    int *mas = new int[size];
 
    for (i=0;i<size;i++)
    {
        mas[i]=rand()%100+1;
    }
    cout << "Массив: ";
    for (i=0;i<size;i++)
    {
        cout << mas[i] << " ";
    }
    j=size;
    while (i!=j)
    {
        for(m=0;m<size-1;m++)
        {
            min=mas[i];
            max=mas[j];
            for(i=1;i<size-1;i++)
            {
                if(mas[i]<min)
                {
                    min=mas[i];
                }
                else
                    if(mas[i]>max)
                    {
                        max=mas[i];
                    }
            }
            mas[i]=min;
            mas[size-1]=max;
            i++;
            j--;
        }
    }
    cout << "Отсортированный массив: ";
    for(i=0;i<size;i++)
    {
        cout << mas[i] + " ";
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Belfegor
Ghost
 Аватар для Belfegor
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 524
11.10.2013, 23:50     C++ Сортировка массива методом Min и Max | Не работает программа #2
оно не сортирует
C++
1
2
3
4
5
cout << endl;
    cout << "Отсортированный массив: ";
    for (i = 0; i < size; i++) {
        cout << mas[i] << " ";
    }
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
12.10.2013, 00:11     C++ Сортировка массива методом Min и Max | Не работает программа #3
C++
1
2
3
4
5
6
    for (i=0;i<size;i++)
    {
        cout << mas[i] << " ";
    } //после цикла i == size
    j=size; //j == size
    while (i!=j)//тут получаем i == size и j == size , условие ложно
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
12.10.2013, 00:37     C++ Сортировка массива методом Min и Max | Не работает программа #4
Попытался Ваш вариант адаптировать, только если использовать поиск по максимуму и по минимуму, данный метод не всегда дает требуемый результат в случае одинаковых элементов в массиве. Для стопроцентного результата выберите что-нибудь одно.
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
#include <iostream>
#include <ctime>
 
using namespace std;
 
void main ()
{
   srand(time(NULL));
   int size;
   int num;
   int i, j;
   int min, max;
   int m;
 
   cout << "Enter array's size: ";
   cin >> size;
 
   int *mas = new int[size];
 
   for (i=0;i<size;i++)
   {
      mas[i]=rand()%100+1;
   }
 
   cout << "Array: ";
   for (i=0;i<size;i++)
   {
      cout << mas[i] << " ";
   }
   cout << endl;
 
   i = 0;
   j = size-1;
   while (i < j)
   {
      min = i;
      max = j;
      for(m = i; m <= j; m++)
      {
         if(mas[m] < mas[min])
            min = m;
         else if(mas[m] > mas[max])
            max = m;
      }
      if (i != min && min != max)
         mas[i] ^= mas[min] ^= mas[i] ^= mas[min];
      if (j != max && min != max)
         mas[j] ^= mas[max] ^= mas[j] ^= mas[max];
      i++;
      j--;
   }
 
   cout << "Sorted array: ";
   for(i = 0; i < size; i++)
   {
      cout << mas[i] << " ";
   }
   cout << endl;
 
   std::system("pause");
}
Anastaci9l
0 / 0 / 0
Регистрация: 11.10.2013
Сообщений: 5
12.10.2013, 10:09  [ТС]     C++ Сортировка массива методом Min и Max | Не работает программа #5
Благодарю всех за помощь
Yandex
Объявления
12.10.2013, 10:09     C++ Сортировка массива методом Min и Max | Не работает программа
Ответ Создать тему
Опции темы

Текущее время: 00:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru