2015-10-05 51 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循环不需要在至少,你应该摆脱它。

而且你需要做的条件,而不是左右,它应该是这个样子和:

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

正在测试,如果数字是> =分钟或num < =最大值,这意味着如果一个这是真的,它会返回true,所以如果你的限制是min = 4max = 5num = 12它会返回true,因为12 >= 4

+0

解决!谢谢 !! :) –