This is what I have so far, but it only compares number with itself. I need it to compare with all 100 numbers. Thank you!
import java.util.Random;
public class CompSci {
public static void main(String[] args) {
Random generator = new Random();
for (int x = 1; x < 100; x++) {
int num1 = generator.nextInt(100);
System.out.println ("A number from 1 to 100: " +num1);
int numbers[] = new int[]{num1};
int largest = numbers[0];
for(int i = 1; i < numbers.length; i++) {
if(numbers[i] > largest)
largest = numbers[i];
}
System.out.println("Largest Number is: " + largest);
}
}
}
For each iteration of your outer loop you are creating a new array, so move the
int numbers[]
array to before the first for
loop.
In this case you can set the size of this array to 100
as that will be how many times you will iterate.
Also the value of largest should also be kept outside the loop, and if so then you do not need to loop through all numbers in the array, just the last entered number. In fact you do not even need the number array.
try
import java.util.Random;
public class CompSci {
public static void main(String[] args) {
Random generator = new Random();
int numbers[] = new int[100]; // not even really needed for this exercise
int largest = Integer.MIN_VALUE; // a very small number
for (int x = 1; x < 100; x++) {
int num1 = generator.nextInt(100);
System.out.println ("A number from 1 to 100: " +num1);
numbers [x] = num1;
if(numbers[x] > largest)
{
largest = numbers[x]; //Set if find new largest number
}
System.out.println("Largest Number is: " + largest);
}
}
Note
Also check the javadocs (Thanks @Andreas)
Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive),
另外,因为循环当前仅运行99次,而不是预期的100次,所以for循环应为x = 0到x <100。
You're so close! Divide and conquer the solution into steps:
largest
value, and initialize it to the first term in the set. largest
if the term is greater. Your solution is very close, but a bit tangled up. Let's go over it line-by-line to understand what needs to be adjusted:
// Step 1. Generate the set
for (int x =1; x<100; x++) // iterate from x = 1 to 100 (exclusive)
{ // and for each iteration:
int num1=generator.nextInt(100); // create a random integer num1
System.out.println("A number from 1 to 100: " +num1);
int numbers[] = new int[]{num1}; // create array 'numbers' of length 1,
// and place 'num1' inside the array
// notice how this recreates the set
// for each new number
// Step 2. Instantiate largest to the first random number:
// (notice how this is nested inside Step 1.)
int largest = numbers[0]; // create another integer 'largest' and
// assign to it the 1st element in 'numbers'
// (which is 'num1')
// Step 3. Visit each number (also nested inside Step 1)
for(int i=1; i<numbers.length; i++) // iterate from i=1 (inclusive) until
{ // 'numbers.length' (exclusive)
// note that 'numbers.length' is 1 above, and 'i' is also 1,
// so 'i < numbers.length' is 'false' and the lines below will never execute:
if(numbers[i] > largest) // if the current number in `numbers` is greater
largest = numbers[i]; // update largest
}
System.out.println("Largest Number is: " + largest); // print largest
} // stop step 1
Here's how you may untangle the steps, and perform them in sequence:
// Step 1. Generate the set
int size = 100;
int numbers[] = new int[size]; // create array 'numbers' of length 'size'
for (int x = 0; x < size; x++) // iterate over each element in the array
{
numbers[x] = generator.nextInt(100); // and place a random number in its place
} // stop step 1; now you have a set of 100 random numbers!
// 2. Instantiate largest to the first random number:
int largest = numbers[0];
// 3. visit each remaining number,
for (int i = 1; i < size; i++)
{
// and update largest if current number is greater
if(numbers[i] > largest)
largest = numbers[i];
}
System.out.println ("Largest Number is: " + largest); // print largest
import java.util.Random;
public class CompSci
{
public static void main(String[] args) {
Random generator = new Random();
int numbers[] = new int[100];
int largest = 0;
for(int i = 0;i < 100; i++) {
int num1 = generator.nextInt(100);
numbers[i] = num1;
if(numbers[i] > largest) {
largest = numbers[i];
}
System.out.println("Random number from 1 to 100: " + numbers[i]);
}
System.out.println("Largest Random Number: " + largest);
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.