2016-03-18 29 views
1

我有這個程序,我需要讓我做一個隨機生成的10個數字的行,我需要找到行上最大,最小,第一個和最後一個數字。我已經有號碼線,我發現了最大和最小的號碼。我需要幫助弄清楚如何找到線上的第一個和最後一個數字。這裏是我到目前爲止的代碼:如何查找隨機生成的號碼行中的第一個和最後一個號碼?

// variables 
    Random generator = new Random(); 
    int max = 0, min = 100, random, first, last; 

    // for 
    System.out.println("Here are 10 random numbers: \n"); 
    for (int count = 1; count <= 10; count++) { 

     // get random number and output 
     random = 1 + generator.nextInt(100); 
     System.out.print(random + " "); 

     // Max number 
     if (random > max) 
      max = random; 

     // Min number 
     if (random < min) 
      min = random; 
    } 

    // output 
    System.out.print("\n\nThe first number is " + last); 
    System.out.print("\nThe last number is " + first); 
    System.out.println("\nThe largest random number is " + max); 
    System.out.print("The smallest random number is " + min); 
+2

考慮到你也有'count'的限制,首尾應該比min/max更容易:if(count == 1){/ * first * /} if(count == 10 ){/ * last * /}' – Thomas

+0

提示:...或使用標誌.... –

回答

1

CollectionCollections是存儲對象和適用於他們一些算法非常好的工具。

試試這個:

Random generator = new Random(); 
final int MIN = 0, MAX = 100; 
LinkedList<Integer> numberLine = new LinkedList<>(); 

for (int count = 1; count <= 10; count++) { 
    int random = generator.nextInt(MAX) + 1; 
    numberLine.add(random); 
} 

int last = numberLine.getLast(); 
int first = numberLine.getFirst(); 
int max = Collections.max(numberLine); 
int min = Collections.min(numberLine); 
0

我總是喜歡,如果有可能採取特殊情況下退出循環。這絕對有可能在這裏:

// variables 
Random generator = new Random(); 
int max = 0, min = 100, random, first, last; 

public FirstAndLast() { 
    // for 
    System.out.println("Here are 10 random numbers: \n"); 
    first = nextRandomNumber(); 
    for (int count = 2; count <= 9; count++) { 
     nextRandomNumber(); 
    } 
    last = nextRandomNumber(); 

    // output 
    System.out.print("\n\nThe first number is " + first); 
    System.out.print("\nThe last number is " + last); 
    System.out.println("\nThe largest random number is " + max); 
    System.out.println("The smallest random number is " + min); 
} 

private int nextRandomNumber() { 
    // get random number and output 
    random = 1 + generator.nextInt(100); 
    System.out.print(random + " "); 

    // Max number 
    if (random > max) 
     max = random; 

    // Min number 
    if (random < min) 
     min = random; 

    return random; 
} 

我介紹了一個輔助方法來完成每個數字的工作。

順便說一句,你似乎已經在你的輸出中交換了firstlast

0
import java.util.Random; 

public class RandomGenerated { 

    public static void main(String[] args) { 
     // variables 
     Random generator = new Random(); 
     int max = 0, min = 100, random, first = 0, last = 0; 

     // for 
     System.out.println("Here are 10 random numbers: \n"); 
     for (int count = 1; count <= 10; count++) { 

      // get random number and output 
      random = 1 + generator.nextInt(100); 
      System.out.print(random + " "); 

      // last 
      if (count == 10) { 
       last = random; 
      } 

      // first 
      if (count == 1) { 
       first = random; 
      } 

      // Max number 
      if (random > max) 
       max = random; 

      // Min number 
      if (random < min) 
       min = random; 
     } 

     // output 
     System.out.print("\n\nThe first number is " + first); 
     System.out.print("\nThe last number is " + last); 
     System.out.println("\nThe largest random number is " + max); 
     System.out.print("The smallest random number is " + min); 
    } 

} 
相關問題