# 05/15
https://hackmd.io/@-JG915ddTbSXM0tfs4kLTw/HkBKgO8r3
## hw1
```c=
#include <stdio.h>
#include <stdlib.h>
int a(const void *a, const void *b) {
int numA = *(int*)a;
int numB = *(int*)b;
if (numA < numB) {
return -1;
} else if (numA > numB) {
return 1;
} else {
return 0;
}
}
int b(const void *a, const void *b) {
int numA = *(int*)a;
int numB = *(int*)b;
if (numA > numB) {
return -1;
} else if (numA < numB) {
return 1;
} else {
return 0;
}
}
int c(const void *a, const void *b) {
int numA = *(int*)a;
int numB = *(int*)b;
int isOddA = numA % 2;
int isOddB = numB % 2;
if (isOddA && !isOddB) {
return -1;
} else if (!isOddA && isOddB) {
return 1;
} else if (isOddA && isOddB) {
if (numA < numB) {
return -1;
} else if (numA > numB) {
return 1;
} else {
return 0;
}
} else {
return 0;
}
}
int main() {
int arr[] = {9, 5, 2, 7, 1, 3, 6, 4, 8};
int size = sizeof(arr) / sizeof(arr[0]);
qsort(arr, size, sizeof(int), a);
printf("small to large:\n");
for (int i = 0; i < size; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
qsort(arr, size, sizeof(int), b);
printf("large to small:\n");
for (int i = 0; i < size; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
qsort(arr, size, sizeof(int), c);
printf(" (odd numbers first, then even numbers, small to large):\n");
for (int i = 0; i < size; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```