2015-06-19 5 views
-4

Мне нужна моя программа, чтобы сделать следующее ниже.Проблемы с массивами и методами Java

  1. Создайте функцию, называемую toString, которая возвращает строку для печати значений массива в «формате литерала массива».

  2. Создайте функцию rangeInArray, которая возвращает диапазон значений в массиве. В математике диапазон - это величина разницы между минимальным и максимальным (включительно). У меня уже есть методы для min и max, чтобы использовать их и не нужно включать какие-либо петли для этого метода.

Это код, который у меня есть в настоящее время.

public class WestAndersonAsmnt9 { 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     int Sample_Array_1[] = {4,7,9,3,2,8,15,6,8,7}; 
     int Sample_Array_2[] = {12,6,4,8,3,7,11,1,6}; 
     IntegerArray arr = new IntegerArray(Sample_Array_1.length); 
     IntegerArray arr2 = new IntegerArray(Sample_Array_2.length); 
     IntegerArray arr3 = new IntegerArray(Sample_Array_1); 
     IntegerArray arr4 = new IntegerArray(Sample_Array_2); 
     arr.fillRandom(100, 200); 
     arr.printLiteral(); 
     arr2.fillRandom(100, 200); 
     arr2.printLiteral(); 
     arr.copy(Sample_Array_1); 
     arr.printLiteral(); 
     arr.copy(Sample_Array_2); 
     arr.printLiteral(); 
     arr3.sumOfArray(); 
     arr4.sumOfArray(); 
     arr3.maxInArray(); 
     arr4.maxInArray(); 
     arr3.minInArray(); 
     arr4.minInArray(); 
     arr3.rangeInArray(); 


    } 

} 


public class IntegerArray { 
    int arr[]; 

    public IntegerArray(int size) { 
     arr = new int[size]; 
    } 

    public IntegerArray(int value[]) { 
     arr = value; 
    } 

    public void fillRandom(int from, int to) { 
     int range = (to - from) + 1; 
     for (int i = 0; i < arr.length; i++) { 
      arr[i] = (int) (Math.random() * range) + from; 
     } 
    } 

    public void printLiteral() { 
     if (arr == null) { 
      System.out.println("No array"); 
     } else if (arr.length <= 0) { 
      System.out.println("{}"); 
     } else { 
      System.out.print("{" + arr[0]); 
      for (int i = 1; i < arr.length; i++) { 
       System.out.print("," + arr[i]); 
      } 
      System.out.println("}"); 
     } 
    } 

    public void copy(int copy[]) { 
     arr = copy; 
    } 

    public void sumOfArray() { 
     int sum = 0; 
     for (int counter = 0; counter < arr.length; counter++) { 
      sum += arr[counter]; 
     } 
     System.out.println("The sum is " + sum); 

    } 

    public int maxInArray() { 
     int largest = arr[0]; 
     for (int i = 1; i < arr.length; i++) 
      if (arr[i] > largest) { 
       largest = arr[i]; 
     } 
     System.out.println("The max is " + largest); 
     return largest 
    } 
    public int minInArray() { 
     int smallest = arr[0]; 
     for (int i = 1; i < arr.length; i++) 
      if (arr[i] < smallest) { 
       smallest = arr[i]; 
      } 
     System.out.println("The mmin is " + smallest); 
     return smallest 
    } 
    public int rangeInArray() { 
    int range = maxInArray() - minInArray() + 1; // + 1 for "inclusive" 
    System.out.println("The range is " + range); 
    return range; 
    } 

} 
+4

Ссылка на PDF находится за защитой паролем, что делает ваш вопрос неопровержимым, поскольку требует ссылки на PDF. – hexafraction

+0

Спасибо, что указали это. Я исправил проблему. – Jetster220

+1

Попробуйте упростить этот вопрос. Никто не хочет так много читать. – Whitecat

ответ

0

Изменение maxInArray() и minInArray() возвращать целое число.

public int maxInArray() { 
    int largest = arr[0]; 
    for (int i = 1; i < arr.length; i++) 
     if (arr[i] > largest) { 
      largest = arr[i]; 
    } 
    System.out.println("The max is " + largest); 
    return largest; 
} 

public int minInArray() { 
    int smallest = arr[0]; 
    for (int i = 1; i < arr.length; i++) 
     if (arr[i] < smallest) { 
      smallest = arr[i]; 
     } 
    System.out.println("The mmin is " + smallest); 
    return smallest; 
} 

public int rangeInArray() { 
    int range = maxInArray() - minInArray() + 1; // + 1 for "inclusive" 
    System.out.println("The range is " + range); 
    return range; 
} 
+0

Спасибо, когда я запустил это, но он не дает диапазон, он просто отплевывает те же результаты, что и методы maxInArray и minInArray. – Jetster220

+0

@ Jetster220 Извините. Я изменил свой код в соответствии с вашим стилем. – saka1029

+0

Спасибо, намного лучше. Есть ли способ не иметь его также указать max и min? – Jetster220

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