[英]Getting the minimum and maximum values in a randomly generated array in java
import java.util.Random;
public class Java {
public static void main(String args[]) {
int arr[] = new int[10];
Random Rand = new Random();
int max = 0;
int min = arr[0];
for(int i = 0; i < 10; i++) {
int RandNum = Rand.nextInt(10);
arr[i] = RandNum;
if (i == 0) System.out.print("[");
System.out.print(arr[i] + " ");
if (i == 9) System.out.println("]");
if (RandNum>max) {
max = RandNum;
}
if (i > 0) {
if (RandNum < arr[0]) {
min = RandNum;
}
}
}
System.out.println("Minimum number: " + min);
System.out.println("Maximum number: " + max);
}
}
我可以得到最大值,但不能得到最小值..請耐心等待,我是一個初學者,我嘗試過將最小值與第一個數組值進行比較,但是我不確定最小值是否應該為array [0]或僅為0。
設置min時,將其設置為零(這是初始化數組中整數的默認值)。 因此,生成的數字永遠不會大於它。 將min設置為:
min = Integer.MAX_VALUE;
然后,每遍檢查每個新生成的數字,而不是在循環的第一次迭代中跳過它。
您也不用min來檢查新生成的數字,而是用數組的第一個數字檢查。 用這個:
if(RandNum < min) /*do stuff*/;
希望這可以幫助!
首先,您需要確保將第一個數字視為最小值,以為其賦予一些初始值,例如
if(i==0){
System.out.print("[");
min = RandNum;
}
這可以通過使用Integer.MAX_VALUE
初始化min
來避免。
然后,您需要與min
而不是array[0]
進行比較,
if(i>0){
if(RandNum<min){
min = RandNum;
}
}
此外,對於它的價值,您也可以
System.out.println("Minimum number: " + Arrays.stream(arr).min());
System.out.println("Maximum number: " + Arrays.stream(arr).max());
您總是將其與arr [0]進行比較,而不是與“ min”進行比較。
您應該寫:
if(RandNum<min)
{
min = RandNum;
}
筆記:
min
和max
設置為第一個數組的位置。 min
變量是否大於當前隨機數即可。 例如, if (min > number) min = number;
使用您自己的代碼:
import java.util.Random;
public class App {
public static void main(String... args) {
int count = 10;
int arr[] = new int[count];
Random random = new Random();
int max = arr[0];
int min = arr[0];
for (int i = 0; i < count; i++) {
int number = random.nextInt(20);
arr[i] = number;
if (i == 0) {
System.out.print("Array: [ " + number + " ");
} else if (i == count - 1) {
System.out.println(number + " ]");
} else {
System.out.print(number + " ");
}
if (max < number) {
max = number;
}
if (min > number) {
min = number;
}
}
System.out.println("Minimum number: " + min);
System.out.println("Maximum number: " + max);
}
}
使用Arrays.toString
更簡單方法:
import java.util.Arrays;
import java.util.Random;
public class App {
public static void main(String... args) {
int count = 10;
int array[] = new int[count];
int min = array[0], max = array[0];
final Random random = new Random();
for (int i = 0; i < count; i++) {
int number = random.nextInt(10);
array[i] = number;
if (min > number) {
min = number;
}
if (max < number) {
max = number;
}
}
System.out.println("Array: " + Arrays.toString(array));
System.out.println("Minimum number: " + min);
System.out.println("Maximum number: " + max);
}
}
使用Java Streams API(Java 8或更高版本):
import java.util.Arrays;
import java.util.Random;
public class App {
public static void main(String... args) {
final int[] array = new Random().ints(10).toArray();
System.out.println("Arrays: " + Arrays.toString(array));
System.out.println("Minimum number: " + Arrays.stream(array).min());
System.out.println("Maximum number: " + Arrays.stream(array).max());
}
}
int min=0; // Define with cero
for(int i=0; i<10; i++)
{
// Logic of min
arr[i] = RandNum;
if(i ==0) // JUST in the first time
{
min=arr[0]
}
if(RandNum<min) // This inside your for
{
min = RandNum;
}
}
嘗試這個:
public static void main(String[] args) {
int arr[] = new int[10];
Random Rand = new Random();
int max=0;
int min=11;
for(int i=0; i<10; i++)
{
int RandNum = Rand.nextInt(10);
arr[i] = RandNum;
if(i==0) { System.out.print("["); }
System.out.print(arr[i] + " ");
if(i==9) { System.out.println("]"); }
if(RandNum>max)
{
max = RandNum;
}
if(RandNum<min)
{
min = RandNum;
}
}
System.out.println("Minimum number: " + min);
System.out.println("Maximum number: " + max);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.