-1

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

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

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];
^
4

2 回答 2

5

这是不正确的语法,正确的是 long coords[][] = new long[5000][2]; ,您似乎将其与 C 的某些派生混淆了

于 2013-04-23T01:22:07.617 回答
0

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

long coords[5000][2];

它应该是:

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

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

于 2013-04-23T01:21:47.633 回答