Răspuns:
void Insert(int a[], int &n)
{
int i,k=0;
for (i=0; i<n; ++i)
if (a[i]%2) ++k;
int j=n+k-1;
for (i=n-1; i>=0; --i)
{
if (a[i]%2) a[j--]=2*a[i];
a[j--]=a[i];
}
n=n+k;
}
Explicație:
din start am aflat câte (k) impare sunt. Am luat o variabilă j=n+k-1; Parcurg vectorul cu i, dar scriu pe locul j. În final, actualizare n.
p.s. codul tău îl văd trunchiat... nu/l pot comenta :(((