前言

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中的数组无法做到空定义)。