Ошибка в сортировке массива методом прямого выбора - C (СИ)
Формулировка задачи:
Нужно сделать сортировку массива методом прямого выбора. Вот что написал:
До сортировки выводит правильно , а после 0 1 2 3 4 5 6 7 8 9
Вообще не пойму?
#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;
}
}
}Решение задачи: «Ошибка в сортировке массива методом прямого выбора»
textual
Листинг программы
if(arr[pos] < arr[j])