Where is pivoting done in the Crout decomposition algorithm?
That algorithm doesn't do any pivoting. It requires non-zero elements on the diagonal of A to work, otherwise you divide by zero. Note the check:

if (L[j][j] == 0) {
    printf("det(L) close to 0!\n Can't divide by 0...\n");
    exit(EXIT_FAILURE);
}