(1)找规律,交换arr.length/2次即可完成交换
import java.util.Scanner;
public class Arry5 {
public static void main(String[] args) {
int[]arr=new int[10];
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个数");
int a=sc.nextInt();//也可以在上面定义一个数组,然后在控制台输入给值,不过要输满到数组的长度
boolean flag=true;
if(a<0){
System.out.println("不能输入负数,请重新输入");
flag=false;
}
if (flag){//不能用while否则会一直循环,用break会终止整个循环
for(int i=0;i<arr.length;i++){
System.out.println("请输入一个数");
int b=sc.nextInt();
arr[i]+=b;
}System.out.println("逆序前的数组为");
printIntArray(arr);
// for(int start=0,end=arr.length-1;start<end;start++,end--)
for(int i=0;i<arr.length/2;i++){
int tmp = arr[i];
arr[i]=arr[arr.length-1-i];
arr[arr.length-1-i]=tmp;
}System.out.println("逆序后的数组为:");
printIntArray(arr);
}
}
public static void printIntArray(int[] array) {
for (int i = 0; i < array.length; i++) {
if (i == 0) {
System.out.print("[" + array[i] + ", ");
} else if (i == array.length - 1) {
System.out.print(array[i] + "]");
} else {
System.out.print(array[i] + ", ");
}
}
//换行
System.out.println();
}
}
(2)不用交换arr.length/2次,采用同时从两端走完的方法
import java.util.Scanner;
public class Arry5 {
public static void main(String[] args) {
int[]arr=new int[10];
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个数");
int a=sc.nextInt();
boolean flag=true;
if(a<0){
System.out.println("不能输入负数,请重新输入");
flag=false;
}
if (flag){//不能用while否则会一直循环,用break会终止整个循环
for(int i=0;i<arr.length;i++){
System.out.println("请输入一个数");
int b=sc.nextInt();
arr[i]+=b;
}System.out.println("逆序前的数组为");
printIntArray(arr);
for(int start=0,end=arr.length-1;start<end;start++,end--){
int tmp = arr[start];
arr[start]=arr[end];
arr[end]=tmp;
}System.out.println("逆序后的数组为:");
printIntArray(arr);
}
}
public static void printIntArray(int[] array) {
for (int i = 0; i < array.length; i++) {
if (i == 0) {
System.out.print("[" + array[i] + ", ");
} else if (i == array.length - 1) {
System.out.print(array[i] + "]");
} else {
System.out.print(array[i] + ", ");
}
}
//换行
System.out.println();
}
}
运行结果如下: