C语言编程:WOJ第1087题“数星星”,明明答案准确却不能AC

C语言编程:WOJ第1087题“数星星”,明明答案正确却不能AC
题目连接:http://acm.whu.edu.cn/learn/problem/detail?problem_id=1087,就是找最多的共线点数目
  以下是我的代码,用的是暴力枚举,但是提交一直显示WRONG ANSWER。。。时间、内存都符合要求,我查不出来错误。。。求大神指教!
 #include<stdio.h>
 #include<stdlib.h>
 #include<math.h>
 int main(){
  float star[300][2]; // 星星坐标 
  int n;
  int i = 0;
  scanf("%d",&n);
  while(i<n){
  scanf("%f",&star[i][0]);
  scanf("%f",&star[i][1]);
  i++;
  }
  int max = 0;
  int tmp;
  for(i=0; i<n; i++){
  for(int j=i; j<n; j++){ // 无需从 j=i+1 开始,因为端点也计入直线上 
  tmp = 0;
  for(int k=0; k<n; k++){
  //if(k!=i && k!=j){ // 无需排除直线两个端点,因为端点也计入直线上 
  if((star[i][0]==star[j][0] && star[j][0]==star[k][0])||(star[i][1]==star[j][1] && star[j][1]==star[k][1])) // 坐标中出现斜率为0或者无限大情况 
  tmp++; 
  else if(atan2(star[k][0]-star[j][0],star[k][1]-star[j][1]) == atan2(star[k][0]-star[i][0],star[k][1]-star[i][1]))
  tmp++;
  }
  //}
  if(max<tmp) max=tmp;
  }
  }
  printf("%d\n",max); 
  return 0;
 }  
 

------解决方案--------------------
输入包含多组数据
------解决方案--------------------
不符合第二条InPut的要求。