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

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

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

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

11.10.2013, 22:50. Просмотров 961. Ответов 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
#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] + " ";
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2013, 22:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос C++ Сортировка массива методом Min и Max | Не работает программа (C++):

Найти max и min, если min левее max, то среднее арифметическое между ними - C++
#include &lt;iostream.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; void main() { int n,a; int...

Нахождение min и max методом сканирования - C++
Помогите с програмкой. Написал, а она мне выдает invalid floating point operation. Кидает на строчку, где не должно быть ошибки. Может...

Вычислить min max функции методом бисекции - C++
Долго пытался что то придумать,но понять хронологию и концепцию программы понять не могу

Добавить в конец массива элементы, расположенные между min и max элементами исходного массива, исключая нули - C++
добавить в конец массива элементы, расположенные между минимальными и максимальными элементами исходного массива, исключая нулевые

Найти max и min элемент массива - C++
написал в коде,но у меня почему то выводит Max:56 и с минимумом непонятно #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int main() { ...

Нахождение Max и Min в строке двумерного массива - C++
что то вообще не чего не получается. как передать в функцию массив построчно?как найти мин-мах? как перезаписать элемент? #include...

4
Belfegor
Ghost
173 / 173 / 6
Регистрация: 16.09.2012
Сообщений: 526
11.10.2013, 23:50 #2
оно не сортирует
C++
1
2
3
4
5
cout << endl;
    cout << "Отсортированный массив: ";
    for (i = 0; i < size; i++) {
        cout << mas[i] << " ";
    }
1
Croessmah
Эксперт CЭксперт С++
13416 / 7570 / 855
Регистрация: 27.09.2012
Сообщений: 18,638
Записей в блоге: 3
Завершенные тесты: 1
12.10.2013, 00:11 #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 , условие ложно
1
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
12.10.2013, 00:37 #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");
}
1
Anastaci9l
0 / 0 / 0
Регистрация: 11.10.2013
Сообщений: 5
12.10.2013, 10:09  [ТС] #5
Благодарю всех за помощь
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2013, 10:09
Привет! Вот еще темы с ответами:

Порядковые номера min и max элементов массива - C++
Дано целое число N и набор из N целых чисел. Найти номера первого минимального и последнего максимального элемента из данного набора и...

Вычилить max, min массива. Найти ошибку - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int max(int x, int y, int z) { if (x &gt; y &amp;&amp; x &gt; z) return x;...

создать функцию удаления max и min эл-та массива - C++
Я написал почти всю программу в которой задание состоит следующим образом: Удалить максимальный и минимальный эл-т массива вот...

Удалить из массива те элементы, которые меньше (min + max)/2 - C++
Дан массив Х1,...,Х30. Нужно удалить из него те элементы, которые меньше (min+max)/2


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
12.10.2013, 10:09
Ответ Создать тему
Опции темы

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