前言
b站java课程学习笔记整理。
b站视频:黑马程序员全套Java教程_Java基础入门视频教程,零基础小白自学Java必备教程
94. 数组元素求和
需求,有一个数组{68,27,95,88,171,996,51,210}
,求出该数组中满足要求的元素和。要求:求和的元素个位和十位都不能是7,并且只能是偶数。
1 2 3 4 5 6 7 8 9 10 11 12 13
| package 数组元素求和;
public class SumArray { public static void main(String[] args) { int[] arr = {68, 27, 95, 88, 171, 996, 51, 210}; int sum = 0; for (int i = 0; i < arr.length; i++) if (arr[i] % 10 != 7 && arr[i] / 10 % 10 != 7 && arr[i] % 2 == 0) { sum += arr[i]; } System.out.println(sum); } }
|
95.数组内容相同
需求:比较两个数组内容是否相同。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| package 数组内容相同;
public class Compare { public static void main(String[] args) { int[] arr_1 ={1,2,3,88}; int[] arr_2 = {1,2,3,88};
System.out.println(compare(arr_1,arr_2)); } public static boolean compare(int[] arr1, int[] arr2){ if (arr1.length != arr2.length){ return false; } else{ for(int i=0; i<arr1.length;i++){ if (arr1[i] != arr2[i]){ return false; } } } return true; } }
|
96.查找
已知一个数组arr = {19,28,37,46,50}
,键盘录入一个数据,查找该数据在数组中的索引值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| import java.util.Scanner;
public class search { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int input = sc.nextInt(); System.out.println(check(input)); }
public static int check(int num) { int[] arr = {19, 28, 37, 46, 50}; for (int i = 0; i < arr.length; i++) { if (arr[i] == num) { return i; } } return -1; } }
|
个人认为比老师的简单点。
97.反转
已知一个数组arr = {19,28,37,46,50}
;用程序实现元素顺序的反转。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| public class Convert { public static void main(String[] args) { int[] arr = {19, 28, 37, 46, 50}; int[] arr2 = new int[arr.length]; for (int i = 0; i < arr.length; i++) { arr2[arr.length - i - 1] = arr[i]; } bianli(arr2); }
public static void bianli(int[] arr) { System.out.print("["); for (int j = 0; j < arr.length; j++) { System.out.print(arr[j]); if (j != arr.length - 1) { System.out.print(","); } } System.out.print("]"); } }
|
个人觉得比老师的方法简单!
98.评委打分
需求(老师的升级版): 在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。
选手的最后得分为:去掉一个最高分和一个最低分后的4个评委平均值(不考虑小数部分)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| package 评委打分;
import java.util.Scanner; import java.util.Arrays;
public class pingwei { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] array = new int[6]; for(int i = 0; i < 6; i++){ System.out.println("请输入第"+ (i + 1) +"个评委的打分!"); array[i] = sc.nextInt(); }
System.out.println("去掉一个最高分" + array[gotMax(array)] ); System.out.println("去掉一个最低分" + array[gotMin(array)] ); int[] arrayNew = meanArrGenerate(array, gotMax(array), gotMin(array)); System.out.println("最终的得分(平均分为)" + getMean(arrayNew) );
}
public static int[] meanArrGenerate(int[] array, int flag1, int flag2 ) { int[] array_temp = new int[array.length-2]; int count = 0; for (int i = 0; i< array.length; i++){ if (i != flag1 && i != flag2){ array_temp[count] = array[i]; count++; } } return array_temp; }
public static int gotMax(int[] arr) { int[] arr_temp = new int[arr.length]; int max_value = 0; for (int i = 0; i < arr.length; i++) { arr_temp[i] = arr[i]; } Arrays.sort(arr_temp); max_value = arr_temp[arr.length - 1]; for (int j = 0; j < arr.length; j++) { if (arr[j] == max_value) { return j; } } return -1; }
public static int gotMin(int[] arr) { int[] arr_temp = new int[arr.length]; int min_value = 0; for (int i = 0; i < arr.length; i++) { arr_temp[i] = arr[i]; } Arrays.sort(arr_temp); min_value = arr_temp[0]; for (int j = 0; j < arr.length; j++) { if (arr[j] == min_value) { return j; } } return -1; }
public static int getMean(int[] arr){ int sum = 0; for (int i = 0; i < arr.length; i++){ sum += arr[i]; } int mean = sum/arr.length; return mean; }
}
|
一开始的数据输入如果不知道有几个裁判的话,必须先指定一个大数组用来接收(java中的数组无法做到空定义)。