Ошибка в сортировке массива методом прямого выбора - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Нужно сделать сортировку массива методом прямого выбора. Вот что написал:
#include <stdio.h>
#define MAS10 10
void printArray(int *, int);
void directSelection(int *, int);
int main(){
    int arr[MAS10] = {5, 7, 1, 9, 2, 0, 6, 3, 8, 4};
    printArray(arr, MAS10);
    directSelection(arr, MAS10);
    printArray(arr, MAS10);
    getch();
    return 0;
}
void printArray(int *arr, int size){
    int i;
    printf("\n");
    for(i = 0; i < size; i++)
        printf("%3d", arr[i]);
    printf("\n");
}
void directSelection(int *arr, int size){
    int i, j, pos, temp;
    for(i = 0; i < size - 1; i++){
        pos = i;
        for(j = i + 1; j < size; j++){
            if(arr[pos] > arr[j])
                pos = j;
        }
        if(pos != i){
            temp = arr[pos];
            arr[pos] = arr[i];
            arr[i] = temp;
        }
    }
}
До сортировки выводит правильно , а после 0 1 2 3 4 5 6 7 8 9 Вообще не пойму?

Решение задачи: «Ошибка в сортировке массива методом прямого выбора»

textual
Листинг программы
if(arr[pos] < arr[j])

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5
Похожие ответы