2017-04-25 40 views
0

我必須創建一個程序,用1到100之間的50個隨機值填充數組,然後讓用戶輸入一個介於1和100之間的數字。程序將輸出該數字出現的次數在數組中。這是我到目前爲止,我不知道下一步要完成我的程序要做什麼。java中的隨機數組值

import java.util.*; 

public class Occurences { 

public static void main(String[] args) 
{ 
    //This program will generate an array with 50 random values 
    //This user will then input a number 
    //The program will then tell the user how many times their numbers appears 

    //Create array 
    int numbers[]= new int[50]; 

    //Create a new scanner object 
    Scanner sc=new Scanner(System.in); 

    System.out.println("Please enter a number between 1 and 100"); 
    int Usernum= sc.nextInt(); 

    for (int i=0; i<numbers.length; i++) 
    { 
     numbers[i]=(int)(Math.random()*100+1); 

    } 

} 

} 
+0

創建一個新的循環,並檢查'userNum'是否等於'數字中的值[i]'如果這樣增加計數器 –

回答

2

處理此問題的Java 8之前的方法是迭代隨機數組並計算輸入的次數。添加以下代碼:

int count = 0; 
for (int i=0; i < numbers.length; i++) { 
    if (numbers[i] == Usernum) { 
     ++count; 
    } 
} 
System.out.println("The user input " + Usernum + " occurred " + count + " times."); 

在Java 8中,我們可以嘗試隨機數的陣列上使用流:

int count = Arrays.stream(numbers).filter(x -> x == Usernum).toArray().length; 
+0

謝謝!這真的有幫助 –

1

代碼:

package com.stackoverflow.json; 

import java.util.Arrays; 
import java.util.Scanner; 
import java.util.concurrent.ThreadLocalRandom; 

public class Main { 
public static void main(String[] args) { 
    //This program will generate an array with 50 random values 
    //This user will then input a number 
    //The program will then tell the user how many times their numbers appears 

    //Create array 
    int numbers[]= new int[50]; 

    //Create a new scanner object 
    Scanner sc=new Scanner(System.in); 

    System.out.println("Please enter a number between 1 and 100"); 
    int Usernum= sc.nextInt(); 

    for (int i=0; i<numbers.length; i++) 
    { 
     numbers[i]=ThreadLocalRandom.current().nextInt(1, 100 + 1);; 

    } 
    System.out.println(Arrays.toString(numbers)); 
    int count=0; 
    for (int i = 0; i < numbers.length; i++) { 
     if(numbers[i]==Usernum) 
      count++; 
    } 
    System.out.println("count="+count); 

} 

} 

打印:

Please enter a number between 1 and 100 
2 
[91, 12, 7, 55, 73, 77, 92, 69, 84, 49, 8, 54, 24, 27, 51, 84, 71, 79, 91, 65, 41, 30, 91, 2, 99, 83, 46, 31, 21, 17, 78, 18, 54, 48, 100, 9, 74, 8, 48, 63, 49, 89, 80, 22, 10, 79, 67, 84, 57, 17] 
count=1 
-1

每次它都不會得到確切的結果如果你想每個數字的確切位置使用散列表或地圖