2015-10-05 4 views
-2

У меня есть программа CountInRange Java, которая принимает целочисленный массив, также просит пользователя ввести минимальное и максимальное значение. Затем выводится количество элементов из массива, которые находятся между минимальным и максимальным значениями.Анализ ввода и массива пользователей

Почему это не работает?

int [] num ={1, 21, 34, -54, 12, 15, 35}; 
    int count = 0; 
    int i = 0; 
    int j = 0; 
    int min; 
    int max; 

    System.out.println("Enter minimum: "); 
    min = input.nextInt(); 
    System.out.println("Enter maximum: "); 
    max = input.nextInt(); 

    for (i = 0; i < num.length; i++){ 
     for (j = 0; j < num.length; j++) { 
      if (num[i] >= min || num[i] <= max) { 
       count++; 
      }     
     }  
    } 
     System.out.println("There are "+count+" elements whose values fall between the maximum and the minimum value"); 
} 
+0

Хорошо, что с этим делать? – JackVanier

+0

, когда я набрал минимум 4 и максимум 5, выход 49. –

+0

Почему у вас есть две петли? Кажется, что внутренний цикл полностью бесполезен – JackVanier

ответ

0

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

Кроме того, необходимо сделать условный и вместо того, или так это должно выглядеть примерно так:

for (i = 0; i < num.length; i++){ 
     if (num[i] >= min && num[i] <= max) { //AND INSTEAD OF OR 
      count++; 
     }       
    } 

Вы испытывали, если число> = мин ИЛИ Num < = макс, который означает, что если один из они верны, так что если ваш лимит был min = 4 и max = 5 и num = 12, он вернется с ошибкой, потому что 12 >= 4.

+0

SOLVED !! благодаря !! :) –