Cを学び始めたばかりのものなのですが、
シェーカーソート法というのを本で読んでやろうとして
以下のように書いたところコンパイルしたけど上手く動きません。
ダメな所をどなたか教えてください。
ちなみに要素数6の配列を受け取る関数です。

void sort(int x[])
{
  int i,tmp;
  int lp,rp;
  lp=0;rp=5;
  do{
    for(i=lp;i<rp;i++)
    if(x[i]>x[i+1]){tmp=x[i];x[i]=x[i+1];x[i+1]=tmp;}
    rp=i;
   
    for(i=rp;i>lp;i--)
     if(x[j-1]>x[j]){tmp=x[j-1];x[j-1]=x[j];x[j]=tmp;}
     lp=i;
         }while(lp<rp);
 }