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);
}
}
我可以获得最大值,但不是最小值..请耐心等待我,我是初学者,我已经尝试将最小值与第一个数组值进行比较,但是我是不确定最小值应该是数组[0]还是仅为0。
答案 0 :(得分:1)
设置min时,将其设置为零(它是初始化数组中整数的默认值)。因此,生成的数字不会比它大。将min设置为:
min = Integer.MAX_VALUE;
然后检查每个新生成的数字,而不是在循环的第一次迭代中跳过它。
您也没有使用min检查新生成的数字,而是使用数组的第一个数字。使用此:
if(RandNum < min) /*do stuff*/;
希望这有帮助!
答案 1 :(得分:1)
首先,您需要确保将第一个数字视为最小数字,以便为其提供一些初始值,例如
if(i==0){
System.out.print("[");
min = RandNum;
}
使用min
Integer.MAX_VALUE
可以避免这种情况
然后,您需要与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());
答案 2 :(得分:1)
您总是与arr [0]进行比较,而不是与&#34; min&#34;进行比较 你应该写:
if(RandNum<min)
{
min = RandNum;
}
答案 3 :(得分:1)
备注:强>
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());
}
}
答案 4 :(得分:0)
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;
}
}
答案 5 :(得分:-1)
试试这个:
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);
}