2016-03-03 28 views
-3

我是新來編碼的,現在參加在線課程。現在我被卡住了,我無法找到任何幫助我們繼續前進的東西。任務是隨機打印提供給程序的數量。輸入5,程序給你5個隨機數字。之後,他們在奇數和偶數排序。這很好。陣列中的Java Count元素

我的問題是,我不知道如何計算每個數組中的數字(不是將它們加在一起),而是計算有多少奇數,以及有多少偶數。

尋求幫助和指導。

P.s對不起,如果有一個答案在那裏,盡我所能找到它之前問。 d.s

import java.util.*; 
    public class RandomNbrs { 

public static void main(String[] args) { 
    // TODO Auto-generated method stub 

    Scanner scan = new Scanner(System.in); 

    System.out.println("How many random numbers do you want? (0-999)"); 
    int numb = scan.nextInt(); 

    System.out.println("Your random numbers:"); 

    int array[] = new int[numb]; 

    for(int i =0; i < numb; i++){ 

     array [i] = (int) (0 + 1000 * Math.random()); 
     System.out.print(array[i]); 
     System.out.print(" "); 


    } 
    System.out.println(); 
    System.out.println(); 
    System.out.println("Even numbers: "); 


    for(int j =0; j < numb; j++){ 

     if(array[j] %2 == 0){ 


      System.out.print(array[j]); 
      System.out.print(" "); 
     } 


    } 


    System.out.println(); 
    System.out.println(); 
    System.out.println("Odd numbers: "); 

    int oddNbr = 0; 

    for(int k =0; k < numb; k++){ 

     if(array[k] %2 == 1){ 


      System.out.print(array[k]); 
      System.out.print(" "); 

     } 

    } 


} 



} 
+0

那麼你已經有奇數即'oddNbr'的計數器。您只需在檢查條件的'if'條件內執行'oddNbr ++'來增加它。爲偶數製作類似的計數器,並做同樣的事情。 – user2004685

+0

歡迎來到SO。請修改您的帖子以使用正確的拼寫和標點符號。這個和其他提示可以在[詢問幫助頁面](http://stackoverflow.com/help/how-to-ask)上找到。 –

+0

@ user2004685,謝謝!我已經嘗試過了。但我似乎無法做到。我想要一個打印的數字爲陣列的數量。問題是我做錯了。 – forTheLoveOfJava

回答

0

我這是怎麼解決的任務:

公共類TESTTEST {

public static void main(String[] args) { 
    // TODO Auto-generated method stub 

    int oddCounter=0; 
    int evenCounter=0; 

    Scanner scan = new Scanner(System.in); 

    System.out.println("How many random numbers do you want? (0-999)"); 
    int numb = scan.nextInt(); 

    System.out.println("Your random numbers:"); 

    int array[] = new int[numb]; 

    for(int i =0; i < numb; i++){ 

     array [i] = (int) (0 + 1000 * Math.random()); 

     System.out.print(array[i]); 
     System.out.print(" "); 


    } 
    System.out.println(); 
    System.out.println(); 


    for(int j =0; j < numb; j++){ 

     if(array[j] %2 == 0){ 
      evenCounter++; 

     } 

    } 

    System.out.println("Dessa " + evenCounter + " Even numbers: "); 
    for(int j =0; j < numb; j++){ 


     if(array[j] %2 == 0){ 


      System.out.print(array[j]); 
      System.out.print(" "); 

     } 

    } 


    System.out.println(); 
    System.out.println(); 




    for(int k =0; k < numb; k++){ 

     if(array[k] %2 == 1){ 
      oddCounter++; 

     } 

    } 
    System.out.println("Dessa " + oddCounter + " Odd numbers: "); 
    for(int k =0; k < numb; k++){ 

     if(array[k] %2 == 1){ 

      System.out.print(array[k]); 
      System.out.print(" "); 

     } 

    } 

} 

}

0

有幾個概念你可能誤解了。

  1. 你說你需要爲奇數和偶數創建兩個不同的數組。但是,在您提供的代碼中,我只看到一個名爲'array'的數組。請注意,數組[j]和數組[k]引用相同的數組。 j和k是變量。

所以,如果你真的需要兩個不同的數組,兩個數字,你需要創建兩個更多的數組。 有幾種方法,但是這是最簡單的(不一定是最好的,雖然)通過你的代碼去:

import java.util.*; 
public class RandomNbrs 
{public static void main(String[] args) { 
// TODO Auto-generated method stub 

Scanner scan = new Scanner(System.in); 

System.out.println("How many random numbers do you want? (0-999)"); 
int numb = scan.nextInt(); 

System.out.println("Your random numbers:"); 

int array[] = new int[numb]; 
int temp,countOdd=0,countEven=0; 

for(int i =0; i < numb; i++){ 
//I am storing the random generated number in a temporary variable 
//Then i check if it is odd or even and increase the count by using a counter 

    temp= (int) (0 + 1000 * Math.random()); 
    if (temp%2 == 0): 
     countEven++; 
    else 
     countOdd++; 
    array[i]=temp 

    System.out.print(array[i]); 
    System.out.print(" "); 


} 
System.out.println(); 
System.out.println(); 
//Here i am creating two new arrays as you specified. 
//if you just want to print the odd and even numbers AND their couns, you dont necessarily need to make these two arrays. 
int arrayOdd[] = new int[countOdd]; 
int arrayEven[]=new int[countEven]; 

//Counter for accessing the elements of the two new arrays 
int counter1=0,counter2=0; 


//Filling the two new arrays with odd and even numbers from the prev array 
for(int j =0; j < numb; j++){ 

    if(array[j] %2 == 0){ 

     arrayEven[counter1++]=array[j]; 
    } 

    else 
     arrayOdd[counter2++]=array[j]; 


} 

    //Print odd 
System.out.println("Odd:"); 

for(int k =0; k < countOdd; k++){ 

     System.out.print(arrayOdd[k]); 
     System.out.print(" "); 

} 
System.out.println("Total odd numbers="+countOdd); 
//or arrayOdd.length() also gives the count. 
//Similar for printing even numbers 
}} 

此外,您還可以使用ArrayList,您可以動態,並直接存儲奇數和偶數產生2個數組中的隨機數,並且不需要第三個公共數組。讓我知道你是否想知道如何做到這一點。 :)

+0

謝謝! @CoderBC,當我重新編寫代碼時,我將使用這些示例。就像你說的我誤解他們是變量而不是不同的數組。 – forTheLoveOfJava