Sortieren eines Arrays mit alternativen kleinsten bis größten Werten

Gegeben ein Array Ich bin verpflichtet, es so zu sortieren, dass das erste Element der kleinste Wert ist, das zweite Element das größte, das dritte Element das zweitkleinste Element und so weiter.

Aber mein Code druckt nur das ursprüngliche Array und ich kann nicht herausfinden, warum. Jeder Rat wäre dankbar.

#include <stdio.h>
void swap(int m, int n);
int main()
{
    int i,j,A[10],n;

    printf ("enter the number of array elements\n");
    scanf ("%d", &n);

    for (i=0;i<n;i++){
       scanf ("%d", &A[i]);
    }


    for (i=0;i<n;i++){

        if (i%2 == 0){
            for (j=i;j<n;j++){
                if (A[j] < A[i]){
                    swap(A[i],A[j]);
                }
            }
        }
        else if (i%2 != 0){
            for (j=i;j<n;j++){
                if (A[j] > A[i]){
                    swap (A[i],A[j]);
                }
            }
        }

    }

    for(i=0;i<n;i++){
        printf ("%d\n", A[i]);
    }
    return 0;
}

void swap( int m, int n)
{
    int temp;
    temp = m;
    m = n;
    n = temp;
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage