2011-04-18 73 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);