2017-04-02 14 views
0

を介さない:プログラムは、私は、これらのパラメータに基づいてプログラムを書くしようとしている方法

1より大きく、より少ないまたは10個のランダムな 整数のnumArrayと呼ばれる配列を生成しますRandomArrayと呼ばれるプログラムを作成します。プログラムは、0より大きく100より小さい整数 を入力するようにユーザーに尋ねる必要があります。プログラムは、 配列内のすべての数値を、ユーザーが入力した数値より大きく表示する必要があります。

あなたはよりuserNum大きいと呼ばれる 番号を入力するようユーザーに依頼ranNumberと呼ばれる乱数生成器を必要とし、100に0より大きく、以下の10個の数字でnumArrayと呼ばれる整数配列 を埋めるためにそれを使用します0より小さい値と100未満の値を返します displayGreaterThanという静的voidメソッドを作成します。これは拡張forループを使用して配列をステップ実行し、ifステートメントを に入力すると配列の内容とユーザーが入力した数値が比較されます。このメソッドは、ユーザーが入力した番号より大きい数字 を配列から表示する必要があります。

私のプログラムを実行すると、乱数ジェネレータで10の結果が戻ってこないという問題があります。それは入力された数字によって異なり、理由はわかりません。ここで

は私のコードです:

public class RandomArray 
{ 
    public static void main(String[] args) 
    { 
     Scanner input = new Scanner(System.in); 
     SecureRandom ranNumber = new SecureRandom(); 
     int NumArray[] = new int[10]; 

     int userNum; 
     int choice; 
     int num = 0; 

     { 
      num = 1+ ranNumber.nextInt(100); 
      displayGreaterThan (num); 
     } 

    }//end of main 

    public static void displayGreaterThan(int num) 
    { 
     int userNum ; 
     int numArray[] = new int[10]; 
     Scanner input = new Scanner(System.in); 
     System.out.println("Please enter a number 1 to 100"); 
     userNum = input.nextInt(); 
     while (userNum < 1 || userNum > 100) 
     { 
      System.out.println("error please try again."); 
      System.out.println("Please enter a number 1 to 100"); 
      userNum = input.nextInt(); 
     } 

     for (int counter = 1; counter <= numArray.length; counter++) 
     { 
      SecureRandom ranNumber = new SecureRandom(); 
      num = 1+ ranNumber.nextInt(100); 
      if (num > userNum) 
      { numArray[1]++; 
       System.out.println(+ userNum + " is your random number"); 
      } 
      else 
      { 
       counter++; 
      } 
     } 
    } 
} 

私が間違って何をやっている、これは、この難しいことではありませんので。

答えて

0

各手順をよりシンプルにするため、ちょっと解説することをおすすめします。あなたはスキャナを2回宣言しましたが、これは必要ではありません。 displayGreaterThanプロシージャには多くの問題があります。これは完璧ではありませんが、あなたがしようとしていることを単純化しなければならないものと比較できるものです。

public class RandomArray 
{ 
    public static void main(String[] args) 
    { 
     int[] intNumArray = new int[11]; 
     int intUserNumber = 0; 

     // Get random numbers 
     intNumArray = GenerateRandomNumbers(); 

     // Get user initial user input 
     intUserNumber = GetUserInput(intUserNumber); 

     // Validate and recursively call procedure if invalid 
     if(intUserNumber < 1 || intUserNumber > 100) 
     { 
      // Get user input again if invalid 
      intUserNumber = GetUserInput(intUserNumber); 
     } 

     // Display results 
     DisplayGreaterThan(intUserNumber, intNumArray); 

     // Print array for double checking 
     PrintArray(intNumArray); 

    } 

    public static int[] GenerateRandomNumbers() 
    { 

     SecureRandom ranNumber = new SecureRandom(); 
     int[] intNumArray = new int[11]; 

     for(int intCounter = 0; intCounter < 11; intCounter++) 
     { 
      intNumArray[intCounter] = ranNumber.nextInt(100); 

     }  
     return intNumArray; 
    } 

    public static int GetUserInput(int intUserNumber) 
    { 
     Scanner clsScanner = new Scanner(System.in); 

     System.out.println("Please enter a number between 1 and 100"); 
     intUserNumber = clsScanner.nextInt(); 

     return intUserNumber; 

    } 

    public static void DisplayGreaterThan(int intUserNumber, int[] intNumArray) 
    { 
     System.out.println("The array values greater than " + intUserNumber + ":"); 

     for(int intCounter = 0; intCounter < 11; intCounter++) 
     { 
      if(intNumArray[intCounter] > intUserNumber) 
      { 
       System.out.println("#" + intCounter + " = " + intNumArray[intCounter]); 
      } 
     } 
    } 

    public static void PrintArray(int[] intNumArray) 
    { 
     System.out.println("The random array values:"); 

     for(int intCounter = 0; intCounter < 11; intCounter++) 
     { 
      System.out.println("#" + intCounter + " = " + intNumArray[intCounter]); 
     } 
    } 
} 
関連する問題