I've done it this way, I'm sure I will not optimize it, but this is what I achieved.
#include <stdio.h>
#include <stdlib.h>
void ejercicio23(int tam, int * s, int bus);
int main()
{
int vector[]={ 1, 5, 7, 9, 11},
bus=2,
i,
tam=sizeof(vector)/sizeof(int);
ejercicio23(tam,vector,bus);
for(i=0;i<5;i++)
printf("%d\t",vector[i]);
return(0);
}
void ejercicio23(int tam, int * s, int bus)
{
int i,
aux,
auxx,
salir=0;
while((*s) && salir==0)
{
if(bus<(*s))
{
aux=(*s);
*s=bus;
s++;
while(*s && tam)
{
auxx=aux+(*s);
*s=aux;
aux=auxx-(*s);
tam--;
s++;
}
salir=1;
}
tam--;
s++;
}
}