// 10072009.cpp, P H Anderson, Oct 7, '09

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

#define FALSE 0
#define TRUE !FALSE

void min_in_ele_0(int *a, int num);
void swap(int *p1, int *p2);
void arrange_up(int *a, int num);
void print_array(int *a, int num);

int is_palindromic(int *a, int num);
void get_date(int *p_mo, int *p_da, int *p_yr);

int main(void)
{
    
    int a[6] = {9, -3, 5, 7, -1, 0}, b[5] = {1, 2, 3, 2, 1};
    int mo, da, yr;
      
    print_array(a, 6);
    arrange_up(a, 6);
    print_array(a, 6);
    
    if (is_palindromic(a, 6))
    {
        printf("First is palindromic.\n");
    }
    else
    {  
        printf("First is not palindromic.\n");
    }
    
    get_date(&mo, &da, &yr);
    
    printf("MM/DD/YY %02d/02d/%02d\n", mo, da, yr);
                
    system("pause");     
}

// please do not do the assigned sort routine this way.
void arrange_up(int *a, int num)
{
    int *b;
    b = a;  
    for (int n=0; n<num; n++)
    {
        min_in_ele_0(b, num-n);
        ++b;
    }
}

void min_in_ele_0(int *a, int num)
{   
    for (int n=1; n<num; n++)
    {
        if(*(a + n) < *(a + 0))
        {
            swap(a+n, a);
        }
    }                
}

void print_array(int *v, int num)
{
    for (int n=0; n<num; n++)
    {
        printf("%3d", *(v+n));
    }
    printf("\n\n");
}

void swap(int *p1, int *p2)
{
    int tmp;
    tmp = *p1;
    *p1 = *p2;
    *p2 = tmp;
}

int is_palindromic(int *a, int num)
{ // stub
   return(TRUE);
}

void get_date(int *p_mo, int *p_da, int *p_yr)
{ // stub
    printf("...\n");
    *p_mo = 10;  *p_da = 7; *p_yr = 9;
}

#ifdef OUTPUT

  9 -3  5  7 -1  0

 -3 -1  0  5  7  9

First is palindromic.
...
MM/DD/YY 10/02d/07
Press any key to continue . . .
#endif