バブルソートがさ...

とても凄い勘違いしてた。
わざと一番相関が小さいもの同士を結合してたみたい。
そりゃあ頓珍漢な答えしか返ってこないよな。

      for (i=0;i<m;i++){
	for(j=0;j<i;j++){
	  if(k!=k1 && Y0!=Y1){
	    /*後の方が小さかったら*/
	    if( (ac1[j]-a0)*(ac2[j]-a0)>(ac1[j+1]-a0)*(ac2[j+1]-a0) ){
	      ac1tmp=ac1[j]; ac2tmp=ac2[j]; cosinetmp=cosine[j];
	      /*前のと入れ替える*/
	      ac1[j]=ac1[j+1]; ac2[j]=ac2[j+1]; cosine[j]=cosine[j+1];
	      ac1[j+1]=ac1tmp; ac2[j+1]=ac2tmp; cosine[j+1]=cosinetmp;
	    }
	  }
	}

これのif分の中の不等号を逆にしてた。阿呆だ俺。
まあ符号が逆でも答えは大まかなのは出るんですが...あまり正確ではない。