我试着写一个简单的max和min方法,正如我写的那样,我不能帮助它感觉它不应该是这么复杂.......我可能错了吗?我的最大代码就是这样,原谅我糟糕的伪代码:
用10个随机数填充数组.创建一个初始化为0的max变量,因为0是最低的最大值.将每个元素与max进行比较如果元素大于max,则将max的值替换为相关元素
我不喜欢我必须将max初始化为0的事实,我觉得可能有更好的方法呢?
我的min代码工作类似,除了I:比较我的min低于数组元素.如果元素较低,则替换min.
我真的不喜欢这个是我必须将我的min初始化为最大随机数,在这种情况下为50.
我的问题是:有更好的方法吗?有没有更有效的方法来编写这段代码?
import java.util.Random;
public class Main {
public static void main(String[] args) {
//Declare min and max
int max=0;
int min;
//Array of 10 spaces
int[] ar=new int[10];
//fill an array with random numbers between 0 and 50
for(int i=0;i<10;i++)
{
ar[i]=new Random().nextInt(50);
}
//Test max algorithm
//loop trough elements in array
for(int i=0;i<10;i++)
{
//max is set to 0, there should always be a maximum of 0
//If there isnt 0 will be the maximum
//If element is greater then max
//replace max with that element
if(ar[i]>max)
{
max=ar[i];
}
}
System.out.println("The max is "+ max);
//Test min
//Initialising min to maximum Random number possible?
min=50;
for(int i=0;i<10;i++)
{
if(ar[i]<min){
min=ar[i];
}
}
System.out.println("The min is "+min);
}
Run Code Online (Sandbox Code Playgroud)
}
您始终可以获取数组的第一个元素(即numbers[0])作为初始值,并从第二个元素开始循环.
int[] numbers = new int[10];
int max, min;
...
min = max = numbers[0];
for(int i = 1; i < numbers.length; ++i) {
min = Math.min(min, numbers[i]);
max = Math.max(max, numbers[i]);
}
Run Code Online (Sandbox Code Playgroud)
好的,虽然其他人已经发布了答案,但我花时间将代码编辑成我认为更有用的代码.
min(5,3,8,4,1).其他人已经提到了大部分内容,但无论如何,这里是代码:
import java.util.Random;
public class MinMax {
public static int min(int... args) {
int m = Integer.MAX_VALUE;
for (int a : args) {
m = Math.min(m, a);
}
return m;
}
public static int max(int... args) {
int m = Integer.MIN_VALUE;
for (int a : args) {
m = Math.max(m, a);
}
return m;
}
public static void main(String[] args) {
// fill an array with random numbers between 0 and 50
int[] ar = new int[10];
for (int i = 0; i < 10; i++)
{
ar[i] = new Random().nextInt(50);
System.out.println(ar[i]);
}
int maxValue = max(ar);
int minValue = min(ar);
System.out.println("The max is " + maxValue);
System.out.println("The min is " + minValue);
}
}
Run Code Online (Sandbox Code Playgroud)