2011-04-18 78 views
0

所以我有一个从0到4的数组,它有5个随机整数值(即10,20,25,15,50)。该程序要求用户输入一个整数,让用户输入17.该程序将检查数组中的5个值,并打印出比用户放入的数字更大的数字,在这种情况下为17 (我使用for循环来做到这一点)。我还想打印出比用户输入的数字更大的数字,在这种情况下是2(数字大于17)。我该怎么做呢?我是否在第一个for循环中写入for循环?使用for循环计数数组中的索引

int[] myArrays = new int[10,20,25,15,50]; 

int numEntered; 

for (i = 0; i < myArrays.length; i++) 
{ 
    if (myArrays[i] > numEntered) 
     System.out.println(myArrays[i]); 
} 

现在我怎么能得到大于用户输入的总数?

回答

2

只是有一个运行总计数器。

int counter = 0; 

然后无论何时你发现了许多比什么用户必须输入较大,增加使用counter++;计数器。然后在您的for循环之后打印出计数器的值。

这应该是足够的信息,为您解决功课,没有透露太多。

+0

我是否在for循环之前或在for循环中设置了int counter = 0? – 2011-04-18 21:14:03

+0

在for循环之前。因为如果你把它放在for循环中,那里面的所有东西都会在循环的每一次迭代中执行。这意味着如果你有计数器= 0,每次迭代,计数器将重置为0. – Tony 2011-04-18 21:17:36

0

你在正确的轨道上;基本上,这个问题归结为这些项目:

  1. 通过你的阵列
  2. 记录的项目超过您指定的值
  3. 取所有项目遇到比你指定的值的大于循环。

您可以用数组的单个循环完成这一切。

+0

这就是我的想法,但即时通讯有点困惑,我做第一个for循环内循环? – 2011-04-18 21:15:04

+0

你的其他循环会做什么? – Tejs 2011-04-18 21:17:17

0

是否需要循环的第二个?为什么?我会这样做..

//Take in the number to test. 
public void islarger(int num){ 
    int counter = 0; 
    int numbers[] = new int[5]; 
    //loop through array 
    for(int x=0; x < array.length; ++x){ 
     if(array[x] > num){ 
      //If it meets the condition add it to the new array 
      numbers[y] = array[x]; 
      ++y; 
     } 
    } 
    //print our results. 
    System.out.println("There are " + counter " numbers larger than " + num + \n "They are..."); 
    Arrays.toString(numbers); 
} 
0

为什么不只是一个整数,你增加每次你发现一个值大于用户输入?

int count=0; 
for(int i=0; i<4; i++) { 
    if(myArrays[i] > numEntered) { 
     count++; 
     System.out.println(myArrays[i]); 
    } 
} 
System.out.println("found " + count + " values greater than " + numEntered);