- 计算一维数组中最大值和最小值的数据之和;
package org.oracle.test;public class Arr01 {public static void main(String[] args) {int[] arr = { 6, 3, 2, 7, 9, 1, 5, 4, 4, 4, 10, 9 };int max = arr[0];int min = arr[0];for (int i = 1; i < arr.length; i++) {if (max < arr[i]) {max = arr[i];} else if (min > arr[i]) {min = arr[i];}}System.out.println(min + max);}
}
Console:
11
- 把一个数组中的最大值和最小值进行互换;
package org.oracle.test;import java.util.Arrays;
import java.util.Scanner;public class Arr02 {public static void main(String[] args) {int arr[] = {4,2,1,6,8,5,10};int max = 0;int min = 0;for (int i = 1; i < arr.length; i++) {if (arr[max] < arr[i]) {max = i;}if (arr[min] > arr[i]) {min = i;}}int temp = arr[max];arr[max] = arr[min];arr[min] = temp;for (int a : arr) {System.out.print(a + " ");}}
}
Console:
4 2 10 6 8 5 1
- 定义两个int类型的数组,把第一个数组的最大值和第二个数组的最小值进行互换,然后遍历两个数组(数组中不包含重复的元素);
package org.oracle.test;import java.util.Arrays;public class Arr03 {public static void main(String[] args) {int arr1[] = { 1, 3, 5, 7, 9 };int arr2[] = { 2, 4, 6, 8, 10 };Arrays.sort(arr1);Arrays.sort(arr2);int temp = arr1[arr1.length-1];arr1[arr1.length-1] = arr2[0];arr2[0] = temp;System.out.print("数组一:");for(int a1:arr1) {System.out.print(a1+" ");}System.out.println();System.out.print("数组二:");for(int a2:arr2) {System.out.print(a2+" ");}}
}
Console:
数组一:1 3 5 7 2
数组二:9 4 6 8 10
- (经典案例)请编程实现下面的要求:在编程竞赛中,有10个评委
通过键盘录入方式为参赛的选手打分(整数),选手的最后得分为:去掉一个最高分和一个最低分后其余8个选手的平均值。(求平均值);
public class Arr04 { //方法一public static void main(String[] args) {int num[] = new int[10];//创建新数组,定义长度为10Scanner input = new Scanner(System.in);for(int i = 0 ; i< 10; i++) {num[i] = input.nextInt();//键盘录入10个同学的成绩}int max = num[0];//定义最大值int min = num[0];//定义最小值for(int i = 1; i < 10;i++) {if(max<num[i]) {max = num[i];//遍历10个数找到最大值}if(min>num[i]) {min = num[i];//遍历10个数找到最小值}}int sum = 0;for(int i =0;i<10;i++) {sum+=num[i];//计算出总分数}System.out.println((sum-min-max)/8.0);//总分数减去最大值和最小值 除以8就是想要的答案}
}
package org.oracle.test;import java.util.Arrays;
import java.util.Scanner;public class Arr04_2 { // 方法二public static void main(String[] args) {int num[] = new int[10];Scanner input = new Scanner(System.in);for (int i = 0; i < 10; i++) {num[i] = input.nextInt();}Arrays.sort(num); //数组排序int arr1[] = new int[8];//创建新数组System.arraycopy(num, 1, arr1, 0, arr1.length);//数组复制(原数组,原数组起始下标,新数组,新数组起始下标,复制的长度)int sum = 0;for (int a : arr1) {sum += a; //新数组八个数加起来}System.out.println("平均成绩为" + sum / 8.0);}
}
Console:
8
2
10
8
8
8
8
8
8
8
8.0
- 现在有如下的一个数组:
Int[] arr1 = {1,2,0,5,6,0,2,0,0,4,5,0,7,0,8},要求将以上数组中值为 0的项去掉,将不为0的值存入到一个新的数组,生成的新数组为 int[] arr2 = {1,2,5,6,2,4,5,7,8}
package org.oracle.test;public class Arr05 {public static void main(String[] args) {int arr1[] = { 1, 2, 0, 5, 6, 0, 2, 0, 0, 4, 5, 0, 7, 0, 8 };int count = 0;for (int i = 0; i < arr1.length; i++) {if (arr1[i] != 0) {count++;}}int arr2[] = new int[count];int j = 0;for (int i = 0; i < arr1.length; i++) {if (arr1[i] != 0) {arr2[j++] = arr1[i];}}for (int a : arr2) {System.out.print(a + " ");}}
}
Console:
1 2 5 6 2 4 5 7 8
- 复习题,做下面这道题:
键盘录入一个数,求1(包括1)到这个数(包括)以内的奇数和,输出形式为:
package org.oracle.test;import java.util.Scanner;public class Arr06 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入一个数:");int num = input.nextInt();getSum(num);}public static void getSum(int num) {int j = 0;for (int i = 1; i <= num; i += 2) {j += i;if (i == 1) {System.out.print(i);} else {System.out.print("+" + i);}}System.out.print("=" + j);}
}
Console:
请输入一个数:
25
1+3+5+7+9+11+13+15+17+19+21+23+25=169