#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h> 

#define SWAP(a, b)  { a ^= b; b ^= a; a ^= b; } while ( 0 )

int main(void)
{
    size_t array_ptr;
    
    char n;                   // true-false
    int16_t array[] = 
    {
    50, -62, 10, 617, -174, 22, 274, 22, 7, 28, -2888, 16, 6, // сюда можно копипастить хрень
    };
    size_t array_end = sizeof(array)/sizeof(array[0]);
    do
    {
        n=0;                  // FALSE
        array_ptr = 0;        // SET PTR TO THE BEGIN

        while (array_ptr != (array_end-1) )          // COMPARE POINTERS
        {
            if ( array[array_ptr] > array[array_ptr+1] )      // COMPARE VALUES
            {
                SWAP( array[array_ptr], array[array_ptr+1] ); // SWAP VALUES
                n=1;          // TRUE
            }
            array_ptr++;
        }

    }
    while (n);
    
    array_ptr=0;
    while (array_ptr != array_end)
    {
        printf( "%" PRId16 ", ", array[array_ptr] );
        array_ptr++;
    }

    printf("\n");
    return 0;
}