Witam mógłby ktoś mi wytłumaczyć gdzie popełniłem błąd, ponieważ output = 13455. Dlaczego podwaja '5' i zjada '2'?
#include <stdio.h>
void swap(int *xp, int *yp)
{
int temp;
temp = *yp;
*yp = *xp;
*xp = *yp;
}
void comp(int arr[], int n)
{
int i, j;
for(i = 0 ; i < n-1 ; i++)
{
for(j = i+1 ; j < n ; j++)
{
if(arr[i]>arr[j])
{
swap(&arr[i], &arr[j]);
}
}
}
}
void printArr(int arr[], int n)
{
int i;
for (i = 0 ; i < n ; i++)
printf("%d",arr[i]);
}
int main(void){
int arr[] = { 1 , 3 , 4 , 5 , 2};
int n=sizeof(arr)/sizeof(arr[0]);
comp(arr, n);
printArr(arr, n);
printf("\n");
}
Z góry dziękuje za pomoc :)