编译java程序中的错误

时间:2013-04-23 01:20:34

标签: java

我写了以下程序和程序抛出编译错误

我不知道为什么会出现错误,因为所有的分号和括号似乎都已到位

import java.io.*;

public class Solution {
  public static void main(String args[]) throws Exception {
    long coords[5000][2];
    long number;
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    try {
      number = Long.parseLong(br.readline());  // take no of inputs
      //take all co ordinates and store it in 2d array
      for(long i=0;i<number;i++) {  
        coords[i][0] = Long.parseLong(br.readline());
        coords[i][1] = Long.parseLong(br.readline());
      }
    } catch(NumberFormatException e) {
      System.out.println("Number Format Exception:");
    }

    if(check_line(coords,number)) {
      System.out.println("YES");
    } else {
      System.out.println("NO");
    }
  }

  public boolean check_line(long coords[][], long limit) {
    long x;

    for(long i=0;i<no;i++) {
      x = coords[i][0];
      if(coords[x][0] == x)
      return true;
      else {
        coords[i][0] = coords[x][0];
        coords[x][0] = x;
      }
    }

    return false;
  }
}

编译错误如下:

Solution.java:8: error: ']' expected
long coords[5000][2];
^
Solution.java:8: error: illegal start of expression
long coords[5000][2];
^
Solution.java:8: error: ';' expected
long coords[5000][2];
^ 
Solution.java:8: error: not a statement
long coords[5000][2]; 
^
Solution.java:8: error: ';' expected
long coords[5000][2];
^

2 个答案:

答案 0 :(得分:5)

这是正确的语法错误 long coords[][] = new long[5000][2]; 看起来好像你把它与C的一些衍生物混淆了

答案 1 :(得分:0)

这不是创建数组的正确方法:

long coords[5000][2];

应该是:

long coords[][] = new long[5000][2];

请记住,在为变量赋值时,必须始终使用=符号。