我这儿有道题,和你这个差不多
分析以下需求,并用代码实现:
(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]
代码:
import java.util.Scanner;
class Demo4_Array {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入元素");
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int d = sc.nextInt();
int e = sc.nextInt();
int f = sc.nextInt();
int []arr = {a,b,c,d,e,f};
//System.out.println(arr[i]);
fanZhuan(arr);
jiShu(arr);
jiShu2(arr);
print(arr);
}
public static void fanZhuan(int [] arr){ //将arr数组中的内容反转
for (int i=0;i<(arr.length/2) ;i++ ){
int j = arr.length-1;
if (arr[i]<arr[j-i]){
int temp = arr[j-i];
arr[j-i] = arr[i];
arr[i] = temp;
}
}
}
public static void jiShu(int [] arr){ //数组角标为奇数的互相交换
for (int i=1;i<(arr.length-2) ;i+=2 ){
int temp = arr[i+2];
arr[i+2] = arr[i];
arr[i] = temp;
}
}
public static void jiShu2(int [] arr){ //数组最后一个角标为奇数的元素 和数组中第一个角标为奇数的元素交换
for (int i=1;i<(arr.length) ;i++ ){
if (arr.length%2==1){
int temp = arr[arr.length];
arr[arr.length] = arr[1];
arr[1] = temp;
}else{
int temp = arr[arr.length-1];
arr[arr.length-1] = arr[1];
arr[1] = temp;
}
}
}
public static void print(int [] arr){
for (int i= 0;i<arr.length ;i++ ){
System.out.print(arr[i]+" ");
}
System.out.println();
}
} |