Tu problema es que primero estas declarando la función como void intercambio(int mitad, int vectorUno, int vectorDos), y luego quieres hacer void intercambio(int mitad, int vectorUno[mitad], int vectorDos[mitad]), que por cierto C no va a saber qué es "mitad" en ese punto del código, la función tiene que ser (int, int, int), igual con la otra función.