Проблема была в части, как реализован обмен.
Правильный способ обмена элементами:
if (min!=i){
temp=array[i];
array[i]=array[min];
array[min]=temp;
}
Посмотрите на следующий исправленный код:
#include <stdlib.h>
#include <stdio.h>
void selection_sort(int array[],int num);
int main(void) {
int i,num;
printf("Write the number of elements :");
scanf("%d",&num);
int array[100];
for(i=0;i<num;i++){
scanf("%d",&array[i]);
}
selection_sort(array,num);
return 0;
}
//Doing selection sort algorithm :
void selection_sort(int array[],int num){
int i,j,min,temp;
for (i=0;i<num;i++){
min=i;
for(j=i+1;j<num;j++){
if (array[j]<array[i]){
min=j;
}
}
if (min!=i){
temp=array[i];
array[i]=array[min];
array[min]=temp;
}
}
printf("Sorted elements :\n");
for (i=0;i<num;i++){
printf("%d\n",array[i]);
}
}