L'errore è nei doppi for che usi. Ne serve uno solo per volta ... ovvero
codice://copio in c gli elementi di a nelle posizioni pari int i=0; for (int k = 0; k < w; k+=2, i++){ c[k] = a[i]; } //copio in c gli elementi di b nelle posizioni pari int j=0; for (int k = 1; k < w; k+=2, j++){ c[k] = b[j]; }