Метод, чтобы превратить все значения 3 различных массивов в их абсолютные значения и вернуть все 3, продолжая поворачивать только первый массив, но не следующие два - PullRequest
0 голосов
/ 23 января 2019

У меня есть это назначение для класса, который в основном дает мне три различных массива, и метод main вызывает мой метод, вызывает makeThemAllPostive, который принимает массив и распечатывает все значения в форме абсолютных значений.Однако мой метод возвращает только первый вызванный массив и игнорирует следующие два массива, вызывающих мой метод.

Понятия не имею, что еще можно попробовать, я попытался настроить циклы for, чтобы я мог попытаться вычислить абсолютное значение другим способом, или добавить дополнительные циклы for, чтобы попытаться выполнить каждый массив,и ничего не работает.

вот основная часть метода, которая вызывает мой метод

System.out.println("\nmakeThemAllPostive test:");
makeThemAllPostive(array1);
String actual = Arrays.toString(array1);
System.out.println(actual.equals("[2, 42, 1]") ? "Passed!"
  : "Expected [2, 42, 1] but you returned " + actual);
makeThemAllPostive(array2);
actual = Arrays.toString(array2);
System.out.println(actual.equals("[4, 1, 3, 0, 8, 4, 2]") ? "Passed!"
  : "Expected [4, 1, 3, 0, 8, 4, 2] but you returned " + actual);
makeThemAllPostive(array3);
actual = Arrays.toString(array3);
System.out.println(
  actual.equals("[8, 42, 1, 42, 1, 1, 2, 42, 5, 0, 2, 42]") ? "Passed!"
    : "Expected [8, 42, 1, 42, 1, 1, 2, 42, 5, 0, 2, 42] but you returned "
      + actual);

вот мой метод

public static void makeThemAllPostive(int[] arr)
  {

    int i = 0;
    for (i = 0; i < arr.length; i++)
    {
      Math.abs(arr[i]);
    }


  }

Вот мой вывод:

makeThemAllПозитивный тест: пройден!Ожидается [4, 1, 3, 0, 8, 4, 2], но вы вернулись [4, -1, -3, 0, 8, -4, 2] Ожидается [8, 42, 1, 42, 1, 1, 2, 42, 5, 0, 2, 42] но вы вернулись [-8, 42, 1, 42, -1, 1, -2, 42, -5, 0, 2, 42]

Мой ожидаемый результат должен быть пройден всеми 3 тестами, но пройден только первый: (* ​​1015 *

1 Ответ

0 голосов
/ 23 января 2019

Очевидная ошибка в вашем коде заключается в том, что вы делаете Math.abs, но вы нигде не назначаете это значение, поэтому единственный эффект - это просто нагревание Вселенной.Попробуйте что-то вроде этого:

for (int i = 0; i < arr.length; i++)
{
    arr[i] = Math.abs(arr[i]); // assign abs back!
}
...