Сколько раз массив содержит значение?

Oleg Khegay спросил: 28 марта 2018 в 03:21 в: java

Это простая программа для поиска, если входное значение x находится в массиве или нет.
Пользователь вводит числа в массив, после этого число число, чтобы подсчитать сколько раз это числа повторяются в массиве.Что у меня есть:

public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
        int[] mas = new int[5];
        for (int i = 0; i < mas.length; i++) {
            System.out.print("Input of mas["+i+"]: ");
            int n = sc.nextInt();
        }
        valueX(mas);
        for (int i = 0; i < 10000; i++) {
           System.out.println("Would you like to continue (1=yes, 0=no)?");
        int n = sc.nextInt();
        if (n==1) {
            valueX(mas);
        }
        if (n==0) {
            System.out.println("Program terminated");
            sc.close();
            break;        } 
        }    }
    public static void valueX(int mas1[]){
        Scanner scanner = new Scanner(System.in);
         System.out.print("Input x: ");
        int x =scanner.nextInt();
        int count =0;
        for (int i = 0; i < mas1.length; i++) {
            if (x==mas1[i]) {
                count++;
            }        }
         System.out.println("Value "+x+" appears "+count+" time(s) in the array.");
    }

Метод valueX должен выполнять эту работу, но это не так.
Что я ожидаю получить:

Input of mas[0]: 2
Input of mas[1]: 2
Input of mas[2]: 3
Input of mas[3]: 4
Input of mas[4]: 2
Input x: 2
Value 2 appears 3 time(s) in the array.  

Но что делает мой код:

Input of mas[0]: 2
Input of mas[1]: 2
Input of mas[2]: 3
Input of mas[3]: 4
Input of mas[4]: 2
Input x: 2
Value 2 appears **0** time(s) in the array.  

Не могли бы вы найти ошибку?


1 ответ

Есть решение
Pavneet_Singh ответил: 28 марта 2018 в 03:25

Вы не храните входное значение в массиве, поэтому в вашем массиве есть все значения 0 (значение по умолчанию int), поэтому проблема

    int[] mas = new int[5];
    for (int i = 0; i < mas.length; i++) {
        System.out.print("Input of mas["+i+"]: ");
        int n = sc.nextInt();
        mas[i] = n;
        //^^^^^^^^    }