#include <stdio.h>

void wissel(int *p, int *q) {
    int hulpje = *p;
    *p = *q;
    *q = hulpje;
}

/* function reverse */

void reverse(int a[], int n) {
    int first = 0, last = n;
    while (first < --last) {
        wissel(&a[first++], &a[last]);
    }
}

int compare(int a[], int b[], int n) {
    int i;
    for (i = 0; i < n; i++) {
        if (a[i] != b[i]) {
            return 0;
        }
    }
    return 1;
}

int main(void) {
    int t1[] = {0, 1, 2, 3};
    int r1[] = {3, 2, 1, 0};
    int t2[] = {0, 1, 2, 3, 4};
    int r2[] = {4, 3, 2, 1, 0};
    reverse(t1, sizeof t1 / sizeof t1[0]);
    if (compare(t1, r1, sizeof t1 / sizeof t1[0]) == 0) {
        printf("Test 1 failed!\n");
    }
    reverse(t2, sizeof t2 / sizeof t2[0]);
    if (compare(t2, r2, sizeof t2 / sizeof t2[0]) == 0) {
        printf("Test 2 failed!\n");
    }
    getchar();
    return 0;
}
