java学习笔记94-98 一些补充练习

前言
b站java课程学习笔记整理。
b站视频:黑马程序员全套Java教程_Java基础入门视频教程,零基础小白自学Java必备教程
94. 数组元素求和
需求,有一个数组{68,27,95,88,171,996,51,210}
,求出该数组中满足要求的元素和。要求:求和的元素个位和十位都不能是7,并且只能是偶数。
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.数组内容相同
需求:比较两个数组内容是否相同。
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}
,键盘录入一个数据,查找该数据在数组中的索引值。
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}
;用程序实现元素顺序的反转。
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个评委平均值(不考虑小数部分)。
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中的数组无法做到空定义)。