Java数组求最大最小值

Python012

Java数组求最大最小值,第1张

这里的难点在于记录数字的位置,因此我定义了一个类NumPosition.java,由数字和它的位置组成:

public class NumPosition {

private int num

private int position

public NumPosition(int num, int position) {

this.num = num

this.position = position

}

public int getNum() {

return num

}

public int getPosition() {

return position

}

}

然后在main函数中,首次遍历求和的时候,记录每一个数字的位置,之后排序后,就可以找到最大值最小值的位置了:

public class Main {

public static void main(String[] args) {

int[] s = new int[]{3, 5, 2, 6, 54, 8, 9, 1, 4, 11}

NumPosition[] positions = new NumPosition[s.length]

int sum = 0

for (int i = 0i <s.lengthi++) {

sum += s[i]

positions[i] = new NumPosition(s[i], i)

}

System.out.println("一维数组中的数的和为:" + sum)

//jdk自带数组升序排序,也可以搜一下冒泡排序自己实现

Arrays.sort(s)

int min = s[0]//最小值 排序后第一个元素

int max = s[s.length - 1]//最大值 排序后最后一个元素

for (int i = 0i <positions.lengthi++) {

if (positions[i].getNum() == min) {

System.out.println("数组中的最小的数为:[" + min + "],其位于数组的第[" + positions[i].getPosition() + "]位置")

}

if (positions[i].getNum() == max) {

System.out.println("数组中的最大的数为:[" + max + "],其位于数组的第[" + positions[i].getPosition() + "]位置")

}

}

}

}

运行结果:

这里位置是从0算起的,如果要从1算起就每个位置加1

java中随便定义一个数组时,需要先排序之后,然后输出最大最小值,可以使用sort类进行排序,实例如下:

public class ArrDemo{public static void main(String[] args){new ArrDemo().getPrint() }private int[] getPrint(){java.util.Scanner sc = new java.util.Scanner(System.in) try{System.out.println("请输入数组的个数。") int[] arr = new int[sc.nextInt()] for(int i = 0i <arr.lengthi++){System.out.println("请输入第"+(i+1)+"个数。") arr[i] = sc.nextInt() }getArr(arr) }catch(Exception e){System.err.println("对不起,您输入的不是数字。") }}private void getArr(int[] arr){int sum = 0 java.util.Arrays.sort(arr) for(int i = 0i <arr.lengthi++){sum += arr[i] }System.out.println("最大值是:"+arr[arr.length-1]) System.out.println("最小值是:"+arr[0]) System.out.println("和是:"+sum) }}

以下程序主要是求得数组中的最大值和最小值:

public class a {

public static void main(String args[]) {

int a[]={84,40,16,3,10,49,28,76,94,70}

int n

int min=a[0]

int i

int max=a[0]

for(n=0n<=9n++) {

if(max<a[n])

max=a[n]

}

for(i=0i<=9i++) {

if(min>a[i])

min=a[i]

}

System.out.print("max="+max)

System.out.print("min="+min)

}

}

该程序输出结果:

数组A的元素包括:74 48 30 17 62数组的最大值是:74数组的最小值是:17

程序说明如下:

第6行声明整数变量i 做为循环控制变量及数组的索引:另外也声明存放最小值的变量min与最大值的变量max。

第7行声明整型数组A,其数组元素有5个,其值分别为74、48、30、17、62。

第9行将min与max的初值设为数组的第一个元素。

第10~18行逐一输出数组里的内容,并判断数组里的最大值与最小值。

第19~20行输出比较后的最大值与最小值。将变量min与max初值设成数组的第一个元素后,再逐一与数组中的各元素相比。比min小,就将该元素的值指定给min存放,使min的内容保持最小;同样的,当该元素比max大时,就将该元素的值指定给max存放,使max的内容保持最大。for循环执行完,也就表示数组中所有的元素都已经比较完毕,此时变量min与max的内容就是最小值与最大值。

本文所述代码为比较基础的示例程序,相信对于Java的初学者仍有一定的借鉴价值。