2017-02-16 15 views
1

Я знаю, что я не могу передавать массивы так, как я это делаю. Должен ли я пройти по ссылке, если да, то как? Вопрос находится внизу для справки.Передача массивов в java

import java.util.Scanner; 
public class MethodsArrays { 

    public static int[] fillArray() { 
     Scanner scan = new Scanner(System.in); 
     int size = scan.nextInt(); 
     int array[] = new int[size]; 
     int pos=0; 

     for(int i=0; i<array.length; i++) { 
      pos=i+1; 
      System.out.println("Enter element " + pos); 
      array[i]=scan.nextInt(); 
     } 
     return array; 
    } 

    public static int sumArray(int [] array) { 
     int sum=0; 

     for(int i=0; i<array.length-1; i++) { 
      sum=array[i]+array[i+1]; 
     } 
     return sum; 
    } 

    public static int avgArray(int [] array) { 
     int avg=0; 
     int sum = sumArray(array); 
     avg = sumArray(array)/array.length-1; 
     return avg; 
    } 

    public static void printArray(int [] array) { 
     for(int i=0; i<array.length; i++) { 
      System.out.print(array[i] + " "); 
     } 
    } 

    public static void main(String[] args) { 
     fillArray(); 
     System.out.println("Sum=" + sumArray(array)); 
     System.out.println("Average=" + avgArray(array)); 
     printArray(array); 
    } 
} 

Напишите программу Java, называемые MethodsArrays, что имеет 4 статические методы называется fillArray(), sumArray(), avgArray(), и PrintArray(). Метод fillArray() следует вызывать из основного метода. Метод fillArray() должен использовать сканер для ввода числа , представляющего длину массива, а затем считывание чисел для заполнения массива . Метод sumArray() должен принимать int-массив в качестве своего входного параметра и возвращает целочисленное значение, которое является суммой всех элементов в массиве. Метод avgArray() должен принимать int array в качестве своего входного параметра и возвращает целое значение, которое является средним значением всех элементов в массиве. Метод printArray() должен принимать int-массив в качестве его входного параметра и не имеет значения возврата . Затем он должен распечатать элементы массива на той же линии , разделенной пробелом (""). Все методы должны работать для целых массивов .

+1

Вы бы меньше проблем, если бы вы на самом деле волнует, что 'fillArray()' возвращает ... – Tom

+0

Почему вы не можете передавать массивы так, как вы делаете? Вам просто нужно сохранить результат вызова 'fillArray()' в переменной с именем 'array', поэтому имя переменной фактически существует, и вы можете использовать его в следующих вызовах. –

+1

Я думаю, что вам нужно назначить результат fillArray() переменной, например int [] array = fillArray(); –

ответ

2

Ваш код выглядит нормально. Вам просто нужно присвоить значение fillArray() переменной, чтобы использовать этот результат для дальнейших методов.

Это будет выглядеть так:

int[] array = fillArray(); 
System.out.println("Sum=" + sumArray(array)); 
System.out.println("Average=" + avgArray(array)); 
printArray(array); 
+1

В методе 'avgArray' OP делится на' array.length-1'. Не уверен, что это задумано. –

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

  • Нет связанных вопросов^_^