extern printf = (*i64, varargs) => void; extern rand = () => i64; extern malloc = (i64) => *i64; extern free = (*i64) => void; let init_array = (n: i64, arr: *i64) => i64 { let i = 0; while i < n { (*(arr + i)) = rand(); i = i + 1; }; return 0; }; let print_array = (n: i64, arr: *i64) => i64 { let i = 0; while i < n { printf("%d\n", *(arr + i)); i = i + 1; }; return 0; }; let sort_array = (n: i64, arr: *i64) => i64 { let i = 0; let j = 0; while i < n { j = i + 1; while j < n { let x = *((arr + i)); let y = *((arr + j)); if x > y { let tmp = (*(arr + i)); (*(arr + i)) = (*(arr + j)); (*(arr + j)) = tmp; }; j = j + 1; }; i = i + 1; }; return 0; }; let main = () => i64 { let n = 10; let arr = malloc(n * 8); init_array(n, arr); printf("Pre-sorted:\n"); print_array(n, arr); sort_array(n, arr); printf("Sorted:\n"); print_array(n, arr); free(arr); return 0; }; /* Expected stdout: Pre-sorted: ${UNSORTED_LIST} Sorted: ${SORTED_LIST} Expected return: 0 */