目录 案例4. 数组元素复制 需求: 把一个数组中的元素复制到另一个新数组中去。 分析: 需要动态初始化一个数组,长度与原数组一样。 遍历原数组的每个元素,依次赋值给新数组。
目录
案例4. 数组元素复制
需求:
把一个数组中的元素复制到另一个新数组中去。
分析:
需要动态初始化一个数组,长度与原数组一样。 遍历原数组的每个元素,依次赋值给新数组。 输出两个数组的内容。
import java.util.Random;/**
* 需求:
* 把一个数组中的元素复制到另一个新数组中去。
*/
public class base
public static void main(String[] args){
int arr[]={1,2,3,4,5};
int arr2[]=new int[arr.length];
copy(arr,arr2);
printf(arr2);
System.out.println();
printf(arr);
}
private static void printf(int[] arr){
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
System.out.print(i== arr.length-1?arr[i]:arr[i]+",");
}
System.out.print("]");
}
private static void copy(int[] arr,int[] arr2){
for (int i = 0; i < arr.length; i++) {
arr2[i]=arr[i];
}
}
}
案例5. 评委打分案例
需求 :
在唱歌比赛中,有6名评委给选手打分,分数范围是[0 - 100]之间的整数。选手的最后得分为:去掉最高分、最低分后的4个评委的平均分,请完成上述过程并计算出选手的得分。
分析:
① 把6个评委的分数录入到程序中去 ----> 使用数组
② 遍历数组中每个数据,进行累加求和,并找出最高分、最低分。
③ 按照分数的计算规则算出平均分。
import java.util.Random;import java.util.Scanner;
/**
* 需求 :
* 在唱歌比赛中,有6名评委给选手打分,分数范围是[0 - 100]之间的整数。
* 选手的最后得分为:去掉最高分、最低分后的4个评委的平均分,请完成上述过程并计算出选手的得分。
* 分析:
* ① 把6个评委的分数录入到程序中去 ----> 使用数组
* ② 遍历数组中每个数据,进行累加求和,并找出最高分、最低分。
* ③ 按照分数的计算规则算出平均分。
*/
public class base
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int arr[]=new int[6];
System.out.println("请输入评委打的分数");
for (int i = 0; i < arr.length; i++) {
arr[i]=scanner.nextInt();
}
System.out.println("平均分:"+(sum(arr) - Min(arr) - Max(arr))*1.0/4);
}
private static int Max(int[] arr){
int max=arr[0];
for (int i = 1; i < arr.length ; i++) {
if (arr[i]>max){
max=arr[i];
}
}
return max;
}
private static int Min(int[] arr){
int min=arr[0];
for (int i = 1; i < arr.length ; i++) {
if (arr[i]<min){
min=arr[i];
}
}
return min;
}
private static int sum(int[] arr){
int sum=0;
for (int i = 0; i < arr.length; i++) {
sum+=arr[i];
}
return
案例6. 数字加密
需求:
某系统的数字密码,比如1983,采用加密方式进行传输,规则如下:先得到每位数,然后每位数都加上5 , 再对10求余,最后将所有数字反转,得到一串新数。
分析
- 将每位数据存入到数组中去,遍历数组每位数据按照规则进行更改,把更改后的数据从新存入到数组中。
- 将数组的前后元素进行交换,数组中的最终元素就是加密后的结果。
import java.util.Scanner;
/**
* 需求:
* 某系统的数字密码,比如1983,采用加密方式进行传输,规则如下:先得到每位数,然后每位数都加上5 , 再对10求余,最后将所有数字反转,得到一串新数。
*/
public class base
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入密码的位数");
int i = scanner.nextInt();
int arr[]=new int[i];
for (int j = 0; j < arr.length; j++) {
System.out.println("请输入第"+(j+1)+"个数字");
arr[j]=scanner.nextInt();
}
//输出数组元素
System.out.println("未加密前:"+Arrays.toString(arr));//API 后期会讲
encryption(arr);
System.out.println("加密后:"+Arrays.toString(arr));
}
private static void encryption(int[] arr){
for (int i = 0; i < arr.length; i++) {
arr[i]+=5;
arr[i]%=10;
}
int temp=0;
int end= arr.length-1;
for (int i = 0; i < (arr.length/2); i++,end--) {
temp=arr[i];
arr[i] =arr[end];
arr[end]=temp;
}
}
}