Te dejo la función:
void funcion (int *ptr_1, int *ptr_2){
int i,o;
int cont = 0, array_aux [10] = {0};
for(i=0,o=1,cont=0;(i<9)&&(o<10);i=i+2,o=o+2,cont++){
array_aux[cont] = ptr_1[o]; //Aca guardo los pares (buffer)
ptr_1[o] = ptr_2[i]; // Aca copio las pares de 2 en impares de 1.
ptr_2[i] = array_aux[cont]; //Aca copio los pares de 1 en impares de 2.
cont++;
}
}
Y este el programa entero:
#include <stdio.h>
void funcion (int *ptr_1, int *ptr_2);
/* Una funcion que copie el contenido de las posicions impares de un vector en las posiciones pares de
* otro vector.
*/
int main (void)
{
int array_1[10] = {5,4,32,1,5,2,1,2,8,70};
int array_2[10] = {6,7,10,23,1,56,19,98,0,12};
int contador;
/***** Imprimo el vector no modificado *****/
printf ("El Array 1 es:\n");
for (contador = 0 ; contador < 10 ; contador++)
printf("%d\t",array_1[contador]);
printf ("\nEl Array 2 es:\n");
for (contador = 0 ; contador < 10 ; contador++)
printf("%d\t",array_2[contador]);
/***** Llamo a funcion que modifica *****/
funcion(array_1,array_2);
/***** *****/
/***** Imprimo el vector modificado *****/
printf ("\nEl Array 1 es:\n");
for (contador = 0 ; contador < 10 ; contador++)
printf("%d\t",array_1[contador]);
printf ("\nEl Array 2 es:\n");
for (contador = 0 ; contador < 10 ; contador++)
printf("%d\t",array_2[contador]);
getchar();
return 0;
}
// Aca hago la funcion.
void funcion (int *ptr_1, int *ptr_2){
int i,o;
int cont = 0, array_aux [10] = {0};
for(i=0,o=1,cont=0;(i<9)&&(o<10);i=i+2,o=o+2,cont++){
array_aux[cont] = ptr_1[o]; //Aca guardo los pares (buffer)
ptr_1[o] = ptr_2[i]; // Aca copio las pares de 2 en impares de 1.
ptr_2[i] = array_aux[cont]; //Aca copio los pares de 1 en impares de 2.
cont++;
}
}
En cuanto a tu código, ni lo mire..., vi mucho comentado borre todo, siempre es la opción mas fácil.
Fijate si entendes lo que te hice, es al pepe usar taaanta herramienta cuando con un for se simplifica todo!!!
Y otra sugerencia, no comentes tooooodo tampoco, esta bueno comentar pero no esta bueno excederse.