| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
运行了下貌似下标越界.In Reply To:求助: java 总是re,为什么啊? Posted by:Maybesky at 2007-05-04 21:32:58 > import java.util.Scanner;
>
> public class Main {
>
> public static void main(String[] args) {
> int[][] dir = new int[4][2];
> dir[0][0] = 0;
> dir[0][1] = 1;
> dir[1][0] = 0;
> dir[1][1] = -1;
> dir[2][0] = 1;
> dir[2][1] = 0;
> dir[3][0] = -1;
> dir[3][1] = 0;
> //= { { 0, 1 }, { 0, -1 }, { 1, 0 }, { -1, 0 } };
> String[] out = new String[4];//{ "doleva", "doprava", "nahoru" , "dolu" };
> out[0] = "doleva";
> out[1] = "doprava";
> out[2] = "nahoru" ;
> out[3] = "dolu";
> Scanner cin = new Scanner(System.in);
> int time = cin.nextInt();
> for (int t = 1; t <= time; t++) {
> System.out.println("Skladacka cislo " + t + ":");
> int r = cin.nextInt();
> int s = cin.nextInt();
> int fx = 0;
> int fy = 0;
> int[][] chess = new int[r][s];
> for (int i = 0; i < r; i++)
> for (int j = 0; j < s; j++) {
> chess[i][j] = cin.nextInt();
> if (chess[i][j] == 0) {
> fx = i;
> fy = j;
> }
> }
> int m,tx,ty;
> while((m = cin.nextInt()) > 0){
> for (int d = 0; d < 4 ; d++){
> tx = fx + dir[d][0];
> if (tx < 0||tx>=r)
> continue;
> ty = fy + dir[d][1];
> if (ty < 0 || ty >= s)
> continue;
> if (chess[tx][ty] == m){
> System.out.println("Kamen " + m + " presunut " + out[d] + ".");
> chess[fy][fx] = m;
> chess[tx][ty] = 0;
> fx = tx;
> fy = ty;
> break;
> }
> if (d == 3)
> System.out.println("Neplatny tah kamenem " + m + ".");
> }
> }
>
> for (int x = 0; x < r; x++) {
> for (int y = 0; y < s; y++)
> System.out.print(chess[x][y] + " ");
> System.out.println();
> }
> System.out.println();
> }
> }
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator