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

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

Восстановить пароль Регистрация
 
AlexEden
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 20
26.01.2014, 20:34     Задача на сортировку массива по возрастанию методом выбора минимального элемента. Не правильно работает код #1
Моя задача отсортировать массив методом выбора минимального элемента. Он заключается в следующем. Ищем в массиве минимальный элемент и ставим его на первое место. Затем из оставшихся элементов также ищем минимальный и ставим на следующее место и т.д. Я написал код, программа запускается, но дело в том, что в отсортированном массиве постоянно вместо какого-либо элемента мне помещается вот это: "-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;
}
У меня просьба проверить его на ошибки.
И вот скриншоты того, что выдает программа.

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

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

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

1 Отсортировать по возрастанию (методом выбора). 2 добавление, удаление, редактирование элемента списка (на С без плюсов). C++
Сортировать массив по возрастанию методом выбора C++
Задача на сортировку массива методом вставки на С++ C++
C++ Отсортировать по возрастанию отрицательные элементы массива методом выбора
Отсортировать по возрастанию элементы массива, с четными номерами методом выбора C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
26.01.2014, 20:47     Задача на сортировку массива по возрастанию методом выбора минимального элемента. Не правильно работает код #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ответь сам себе на вопрос, что такое nmin и найдёшь ошибку!

Добавлено через 2 минуты
Строка nmin=a[i] заменить на nmin=i
AlexEden
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 20
26.01.2014, 20:56  [ТС]     Задача на сортировку массива по возрастанию методом выбора минимального элемента. Не правильно работает код #3
Я поменял. Ошибку понял, но программа все равно работает неправильно по какой-то причине. Вот результат:Задача на сортировку массива по возрастанию методом выбора минимального элемента. Не правильно работает код
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
26.01.2014, 21:06     Задача на сортировку массива по возрастанию методом выбора минимального элемента. Не правильно работает код #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
j<n
AlexEden
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 20
26.01.2014, 21:19  [ТС]     Задача на сортировку массива по возрастанию методом выбора минимального элемента. Не правильно работает код #5
Огромнейшее тебе спасибо! А теоретически, думаю, я сам уже разберусь! Ещё раз спасибо тебе!
Yandex
Объявления
26.01.2014, 21:19     Задача на сортировку массива по возрастанию методом выбора минимального элемента. Не правильно работает код
Ответ Создать тему
Опции темы

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