数组练习
1.定义一个函数,获取某个数组中的最小值
public class ArrayTest1 { public static void main(String[] args) { // 定义一个函数,获取某个数组中的最小值 int[] nums = {1,32, 2, 8, 10, 23, 50}; ArrayTest1 arrayTest1 = new ArrayTest1(); int numsMin = arrayTest1.getArrayMin(nums); System.out.println(numsMin); } public int getArrayMin(int[] array){ int result = array[0]; for (int i = 1; i < array.length; i++) { result = (Math.min(array[i], result)); } return result; } }
运行结果:

2.定义一个数组,数组成员10个,找出数组中最大数连同下标一起输出
public class ArrayTest2 { public static void main(String[] args) { //定义一个数组,数组成员10个,找出数组中最大数连同下标一起输出 int[] nums = {11, 22, 98, 6, 30, 82, 92, 49, 66, 50}; ArrayTest2 arrayTest2 = new ArrayTest2(); arrayTest2.getMax(nums); } public void getMax(int[] array){ int max = array[0]; int maxIndex = 0; for (int i = 0; i < array.length; i++) { if(max < array[i]){ max = array[i]; maxIndex = i; } } System.out.print("数组中最大的数是:" + max + ",下标为:" + maxIndex); } }
运行结果:

3.B哥去参加青年歌手大奖赛,有10个评委打分,(去掉一个最高一个最低)求平均分?
解决思路一:找出最大值和最小值出来,然后数组求和后扣除最大值和最小值,再取平均
public class ArrayTest3 { public static void main(String[] args) { //B哥去参加青年歌手大奖赛,有10个评委打分,(去掉一个最高一个最低)求平均分?
int[] score = {11, 22, 98, 6, 30, 82, 92, 49, 66, 50}; ArrayTest3 arrayTest3 = new ArrayTest3(); arrayTest3.getAverage(score); } public void getAverage(int[] array){ int max = array[0]; int min = array[0]; int sum = 0; for (int j : array) { if (j > max) { max = j; } if (j < min) { min = j; } sum += j; } sum -= (max+min); float average = (float) sum/(array.length-2); System.out.println("最高分:"+max); System.out.println("最低分:"+min); System.out.println("平均分:"+average); } }
解决思路二:排序,然后去掉第一个和最后一个,再取平均
import java.util.Arrays; public class ArrayTest4 { public static void main(String[] args) { //B哥去参加青年歌手大奖赛,有10个评委打分,(去掉一个最高一个最低)求平均分? int[] score = {11, 22, 98, 6, 30, 82, 92, 49, 66, 50}; ArrayTest4 arrayTest4 = new ArrayTest4(); arrayTest4.getAverage(score); } public void getAverage(int[] array){ Arrays.sort(array); int[] newArray = Arrays.copyOfRange(array,1,array.length-1); int sum = 0; for(int x:newArray){ sum += x; } double average = (double)sum/ newArray.length; System.out.println("最高分:"+array[array.length-1]); System.out.println("最低分:"+array[0]); System.out.println("平均分:"+average); } }
运行结果:

4.定义数组,存放5个学生的成绩【成绩值自己设定】,将成绩从大到小排序,获得成绩之和,平均成绩,最小成绩,最大成绩。
import java.util.Arrays; public class ArrayTest5 { public static void main(String[] args) { //定义数组,存放5个学生的成绩【成绩值自己设定】,将成绩从大到小排序,获得成绩之和,平均成绩,最小成绩,最大成绩。 int[] stuScore={88, 90, 93, 97, 94}; ArrayTest5 arrayTest5 = new ArrayTest5(); arrayTest5.score(stuScore); } public void score(int[] stuScore){ Arrays.sort(stuScore); int sum = 0; System.out.print("成绩从大到小:"); for (int i= stuScore.length-1;i>=0;i--) { System.out.print(+stuScore[i]+"\t"); sum += stuScore[i]; } System.out.println(); System.out.println("总成绩为:"+sum); System.out.println("平均成绩为:"+(sum/stuScore.length)); System.out.println("最小成绩为:"+stuScore[0]); System.out.println("最大成绩为:"+stuScore[stuScore.length-1]); } }
运行结果:


浙公网安备 33010602011771号