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

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

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

Задача на сортировку массива по возрастанию методом выбора минимального элемента. Не правильно работает код - C++

26.01.2014, 20:34. Просмотров 721. Ответов 4
Метки нет (Все метки)

Моя задача отсортировать массив методом выбора минимального элемента. Он заключается в следующем. Ищем в массиве минимальный элемент и ставим его на первое место. Затем из оставшихся элементов также ищем минимальный и ставим на следующее место и т.д. Я написал код, программа запускается, но дело в том, что в отсортированном массиве постоянно вместо какого-либо элемента мне помещается вот это: "-858993460". Вот код:

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
#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <ctime>
 
 
using namespace std;
 
 
const int n = 5;
 
 
int main()
 
{
    setlocale (LC_ALL, "Russian");
 
    int i, j, nmin, a[n], c;
 
    srand (time (NULL));
 
    for (i = 0; i < n; i++)
    {
        a[i] = -10 + rand()%20;
 
        cout << "a[" << i << "] = " << a[i] << endl;
    }
 
    for (i = 0; i < n-1; i++)
    {
        nmin = a[i];
 
        for (j = i + 1; j < n - 1; j++)
                if (a[j] < a[nmin])
                    nmin = j;
 
       if (nmin != i)
       {
        c = a[i];
        a[i] = a[nmin];
        a[nmin] = c;
       }
        
    }
    
    cout << "Отсортированный массив:" << endl;
 
    for (i = 0; i < n; i++)
    {
        cout << "a[" << i << "] = " << a[i] << endl;
    }
 
    getch();
    return 0;
}
У меня просьба проверить его на ошибки.
И вот скриншоты того, что выдает программа.

Задача на сортировку массива по возрастанию методом выбора минимального элемента. Не правильно работает код

Задача на сортировку массива по возрастанию методом выбора минимального элемента. Не правильно работает код

У меня просьба не просто написать мне код, а объяснить. Заранее благодарю вас!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2014, 20:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача на сортировку массива по возрастанию методом выбора минимального элемента. Не правильно работает код (C++):

Выполните сортировку вещественного массива методом выбора - C++
Помогите пожалуйста решить пару задач по C++! 1)Выполните сортировку вещественного массива методом выбора: выбирается наименьший элемент...

1 Отсортировать по возрастанию (методом выбора). 2 добавление, удаление, редактирование элемента списка (на С без плюсов). - C++
Здравствуйте! Помогите пожалуйста с 2 заданиями на С (без плюсов). Первое пробовал делать, но дальше ввода массива не доходило, если ещё...

Упорядочить элементы массива по возрастанию методом выбора - C++
2. Дана целочисленная квадратная матрица. Определить: • упорядочить элементы массива по возрастанию методом выбора.

Упорядочить элементы массива по возрастанию методом выбора - C++
3)упорядочить элементы массива по возрастанию методом выбора.

Отсортировать по возрастанию отрицательные элементы массива методом выбора - C++
Дан целочисленный массив A(n) с элементами, сгенерированными случайными числами в диапазоне (-20, 20). Требуется.Отсортировать по...

Отсортировать по возрастанию элементы массива, с четными номерами методом выбора - C++
Дан целочисленный массив с элементами от -20 до 20. Отсортировать по возрастанию элементы массива, с четными номерами методом выбора. ...

4
Kuzia domovenok
1957 / 1810 / 142
Регистрация: 25.03.2012
Сообщений: 6,279
Записей в блоге: 1
26.01.2014, 20:47 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ответь сам себе на вопрос, что такое nmin и найдёшь ошибку!

Добавлено через 2 минуты
Строка nmin=a[i] заменить на nmin=i
1
AlexEden
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 20
26.01.2014, 20:56  [ТС] #3
Я поменял. Ошибку понял, но программа все равно работает неправильно по какой-то причине. Вот результат:Задача на сортировку массива по возрастанию методом выбора минимального элемента. Не правильно работает код
0
Kuzia domovenok
1957 / 1810 / 142
Регистрация: 25.03.2012
Сообщений: 6,279
Записей в блоге: 1
26.01.2014, 21:06 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
j<n
1
AlexEden
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 20
26.01.2014, 21:19  [ТС] #5
Огромнейшее тебе спасибо! А теоретически, думаю, я сам уже разберусь! Ещё раз спасибо тебе!
0
26.01.2014, 21:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2014, 21:19
Привет! Вот еще темы с ответами:

Отсортировать по возрастанию элементы массива с четными номерами методом выбора - C++
Дан целочисленный массив с элементами от -20 до 20. Отсортировать по возрастанию элементы массива с четными номерами (метод выбора)

Задача на сортировку массива методом вставки на С++ - C++
Помогите, пожалуйста, решить задачу. Отсортируйте по возрастанию методом вставки одномерный целочисленный массив, введенный с клавиатуры....

Отсортировать элементы массива по возрастанию если номер минимального элемента меньше заданного - C++
Не смог справится с данными заданиями, может кто объяснит и приведет пример, буду очень благодарен вам граждане. Задача: Задать...

Выполнить сортировку двумерного массива методом нахождения минимального элемента - C (СИ)
Добрый день! подскажите, пожалуйста, как выполнить сортировку двумерного массива методом нахождения минимального элемента?


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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