2012-04-28 4 views
0

Вот то, что я должен делать:я продолжаю получать .class ожидаемой ошибки

Написать программу для чтения 2-D массива 4x4 с. Затем прочитайте первый элемент массива и сравните его с третьим элементом каждого столбца. Замените меньшее значение на более высокие значения. Создайте метод подкачки для замены значений.

Я не уверен, что я делаю неправильно, и я только начинаю изучать массивы. Мой учитель очень концептуальен и не очень конкретен в своем определении, поэтому у меня возникают проблемы с ним. Я продолжаю получать ожидаемую ошибку .class.

public class Array { 

    public static void main(String[] args) {  
     int num [][] = {{4, 6, 7, 2}, 
         {5, 12, 9, 8}, 
         {1, 0, 3, 10}, 
         {5, 3, 14, 11}}; 

     System.out.println("the array elements are:"); 
     for(int i = 0; i < num.length; i++){ 
      System.out.println(); 
      for(int j = 0; j < num[i].length; j++) 
       System.out.print(num[i][j] + " "); 
     } 

     System.out.println("swaped elements are:"); 
     for(int i = 0; i < num.length; i++){ 
      System.out.println(); 
      for(int j = 0; j < num[i].length; j++) 
       System.out.print(swap(num[][]) + " "); 
     } 
    } 

    public static void swap (int x[][]){ 
     for(int i = 0; i < x.length; i++){ 
      int temp = x[0][i]; 
      if (x[0][i] > x[2][i]){ 
       x[2][i] = temp; 
       x[0][i] = x[2][i]; 
      } 
     } 
    } 
} 
+1

Что такое проблема с ур? вы получаете ошибку? если вы вставляете какой-то вывод, это поможет –

ответ

0

swap() ничего не возвращает. Даже если вы разрешили другую проблему (num[][] - это синтаксическая ошибка), вам нужно указать что-то для возврата из swap. Подсказка: возможно, массив, который вы изменили.

+0

№. Вы не можете привязать другой массив к имени переданного объекта, но изменения, которые вы выполняете внутри массива, будут отражены в исходном объекте. Java является «pass by copy of reference», поэтому ссылка копируется, но это не глубокая копия. –

+0

Возможно, вы правы, но если OP хочет _print_, тогда им нужно будет получить какое-то значение _return_. – Makoto

+0

ребята, я знаю, что я сделал не так, да, я не могу напечатать значение массива, поскольку swap ничего не возвращает. что я сделал, просто выполнил swap (num); – p3ruviansoldi3r

0
  • Напишите программу для чтения 2-мерного массива 4x4.

Я не вижу, чтобы вы что-то читали. Просто инициализируйте его. Может быть, вам следует читать из stdin или из файла?

  • Затем прочитайте первый элемент массива и сравните его с третьим элементом каждого столбца.
  • Замените меньшее значение на большие значения.
  • создать метод, называемый своп поменяться значения

В качестве метода замены я бы ожидать, метод с 4 индексов для 2-х позиций в 2D-массив, где значения поменять местами расположены.

public static void swap (int x[][], int i1, int i2, int j1, int j2) { 
    int temp = x[i1][j1]; 
    x[i1][j1] = x[i2][j2]; 
    x[i2][j2] = temp; 
} 

Слышали ли вы об упрощенной петле?

public static void show (int x[][]) { 
    for (int [] inner : x) 
     for (int i : inner) 
      System.out.print (i + " "); 
} 
+0

Нет, я не знаю, как использовать упрощенный цикл for. Я попытаюсь включить его в свой код, спасибо: D! – p3ruviansoldi3r

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