我们老师写的,你可以参考一下
[AppleScript] 纯文本查看 复制代码 import java.util.Scanner;
class Test3_Array {
/*
分析以下需求,并用代码实现:(扩展)
(1)键盘录入6个int类型的数据存数数组arr中
(2)将arr数组中的内容反转
(3)将翻转后的数组角标为奇数的互相交换 1和3换, 3和5换,以此类推
(4)最后将数组最后一个角标为奇数的元素 和数组中第一个角标为奇数的元素交换
(5)打印最终的数组(实现了1-4步之后的数组)
(6)如:用户输入的6个int数字为[1,2,3,4,5,6],最后输出的结果为[6, 5, 4, 1, 2, 3]
6 5 4 3 2 1
0 1 2 3 4 5
6 3 4 5 2 1
0 1 2 3 4 5
6 3 4 1 2 5
0 1 2 3 4 5
*/
public static void main(String[] args) {
int[] arr = getData();
getResult(arr);
}
//(1)键盘录入6个int类型的数据存数数组arr中
public static int[] getData(){
int[] arr = new int[6];
System.out.println("请输入6个整数:");
Scanner sc = new Scanner(System.in);
for(int i = 0; i < arr.length; i++){
// 获取用户输入的数据
int num = sc.nextInt();
arr[i] = num;
}
return arr;
}
//(2)将arr数组中的内容反转
public static void resArray(int[] arr){
int startIndex = 0; // 第一个索引位置
int endIndex = arr.length - 1; // 最后一个索引位置
for( ; startIndex <= endIndex; startIndex++,endIndex--){
swap(arr,startIndex,endIndex);
}
}
public static void swap(int[] arr, int i, int j){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
//(3)将翻转后的数组角标为奇数的互相交换 1和3换, 3和5换,以此类推
public static void changeArray(int[] arr){
/*
int i , j;
i = 1 , j = 3;
i = 3 , j = 5;
i = 5 , j = 7;
*/
for(int i = 1, j = i + 2; i < arr.length && j < arr.length; i+=2,j+=2){
swap(arr,i,j);
}
}
//(4)最后将数组最后一个角标为奇数的元素 和数组中第一个角标为奇数的元素交换
public static int getEndIndex(int[] arr){
// 获取数组中最后一个角标为奇数的元素
/*
1 2 3 4 5 6 7
0 1 2 3 4 5 6
*/
int index = (arr.length - 1) % 2 == 0 ? arr.length - 2 : arr.length - 1;
return index;
}
public static void getResult(int[] arr){
resArray(arr);
changeArray(arr);
int index = getEndIndex(arr);
swap(arr,1,index);
for(int i = 0; i < arr.length; i++){
System.out.print(arr[i] + " ");
}
}
}
|