if (i=3)
Tienes que utilizar el operador '=='. Quedate tranquilo que es un error muy comun, aunque mas que un error es un despiste...
Fijate que en tu programa la salida sera "0 1 2 10 4 5 6" y no "0 1 2 10 3 4 5" como querias, esto se debe a que cambias el valor de vector[3], no lo "corres"
Aca te dejo el codigo modificado y un poco mas legible:
#include<stdlib.h>
#include<stdio.h>
int vector[7];
int i;
main() {
printf("El vector es: ");
for(i=0;i<6;i++) {
vector[i]=i;
printf(" %i",vector[i]);
}
printf("\n\nAhora pondremos un 10 en medio del vector\n");
getchar();
printf("El vector queda de la siguiente forma: ");
for(i=0;i<7;i++) {
if (i==3) {
vector[6]=vector[5];
vector[5]=vector[4];
vector[4]=vector[3];
vector[3]=10;
}
printf(" %i",vector[i]);
}
getchar();
}
Fijate que ya no utilizo la variable b, directamente cuando llega al vector[3] corre los valores y luego le asigna 10.
NOTAS:
* Elimine el doble "getchar()" ya que no le veo utilidad, pero eso corre por tu cuenta
* Trata de escribir el codigo de una manera mas legible, dejando espacios para jerarquizarlo y que no este todo en el mismo nivel (ojo esto es un consejo, si tu te entiendes de esa manera no hay nadie que pueda decirte que no o hagas asi). Fijate en el codigo que te di yo que por lo menos para mi es mas entendible. Muchos IDE y editores te ayudan a hacerlo