2016-02-26 2 views
2

У меня проблема с моим кодом, насколько я знаю, я мог бы использовать индекс массива для другого массива того же размера, но другого типа. Но это только позволяет мне работать с первым типом.Как использовать индекс массива в другом массиве?

Цель состоит в том, что если в массиве имеется занятый слот, индекс переместится в другой массив, который будет отмечен X занятым местом (первый использует int, а второй - char).

Благодарим за помощь.

public static char consolaej(int[][] ejcedula, char[][] matrixej){ 
    for (int i=0; i<ejcedula.length; i++){ 
    for(int j=0; j<4; j++){ 
     if(ejcedula[i][j]!=0){ 
      matrixej[i][j]=x; 
     } 
    } 

} 
return matrixej; 
} 
+0

что х здесь? –

+0

Мне нужно напечатать в консоли карту занятых сит, это просто символ, который я использую для эстетики. – Mylane

ответ

3

Вы должны заменить matrixej[i][j]=x; с matrixej[i][j]='x';. Кроме того, возвращаемый тип функции должен быть char[][], а не только char.

Вот фрагмент кода:

public static void main (String[] args) 
{ 
    int[][] ejcedula = {{1,0,1,2},{0,0,1,2},{2,3,4,0}}; 
    char[][] matrixej = new char[ejcedula.length][4]; 
    matrixej = consolaej(ejcedula,matrixej); 

    /* Print Matrixej */ 
    for (int i = 0; i < ejcedula.length; i++) { 
     for(int j = 0; j < 4; j++) { 
      System.out.print(" " + matrixej[i][j]); 
     } 
     System.out.println(); 
    } 
} 

public static char[][] consolaej(int[][] ejcedula, char[][] matrixej) { 
    for (int i = 0; i < ejcedula.length; i++) { 
     for(int j = 0; j < 4; j++) { 
      if(ejcedula[i][j] != 0) { 
       matrixej[i][j] = 'x'; 
      } 
     } 
    } 
    return matrixej; 
} 

Выход:

x x x 
    x x 
x x x 
+0

О, мой, это правильно! Самая глупая вещь. Благодаря! – Mylane

+0

@Mylane Добро пожаловать! Пожалуйста, примите ответ, нажав галочку чуть ниже счетчика голосов, если он решит ваши сомнения. – user2004685

Смежные вопросы