Java入门_一维数组_第三题_数组反转
题目:数组反转
要求:
把数组的内容反转。
如:arr{ 11 , 22 , 33 , 44 , 55 , 66 } --> { 66 , 55 , 44 , 33 , 22 , 11 }。
思路-1
- 通过具体实例得,每一次都是将 arr[i] 和 arr[arr.length - 1 -i] 交换。
- 一共进行了 arr.length / 2 次。
- 引入Scanner进行扫描,从而实现随机性。
代码如下:
/*
只用于基础练习,不牵扯竞赛题相关要求。
*/
import java.util.Scanner;
public class Javatext6 {
public static void main(String[]args){
Scanner myScanner = new Scanner(System.in);
System.out.println("请输出你要输入的数字个数");
if (myScanner.hasNextInt()) {//判断输入的数据是否为int类型
int add = myScanner.nextInt();
int[] arr = new int[add];//创建数组
System.out.println("请输入具体的数值");//多输入也没用,内存就分配了那点,先到先得
for (int i = 0;i < arr.length;i++ ){//遍历给数组赋值
int add1 = myScanner.nextInt();
arr[i] = add1;
}
System.out.println("===数组的原始数据===");
for (int i = 0 ;i < arr.length;i++){
System.out.print(arr[i] + "\t");
}
int temp = 0;
for (int i = 0;i < arr.length/2;i++){//将数组中的数据进行两两交换,从而实现内容反转
temp = arr[i];
arr[i] = arr[arr.length - 1 - i];
arr[arr.length - 1 - i] = temp;
}
System.out.println(" ");
System.out.println("===数组的反转后数据===");
for (int i = 0 ;i < arr.length;i++){
System.out.print(arr[i] + "\t");
}
}else{
System.out.println("你输入的不是整数");
}
}
}
思路-2 (其实两个差不多)
- 创建一个数组。
- 输入实验数据
- 将数组中的数据倒序输出。
代码如下:
import java.util.Scanner;
public class Javatext6 {
public static void main(String[]args){
Scanner myScanner = new Scanner(System.in);
System.out.println("请输出你要输入的数字个数");
if (myScanner.hasNextInt()) {
int add = myScanner.nextInt();
int[] arr = new int[add];//创建arr1数组
System.out.println("请输入具体的数值");
for (int i = 0; i < arr.length; i++) {
int add1 = myScanner.nextInt();
arr[i] = add1;
}
System.out.println("===数组的原始数据===");
for (int i = 0 ;i < arr.length;i++){
System.out.print(arr[i] + "\t");
}
System.out.println(" ");
System.out.println("===数组的反转后数据===");
for (int i = arr.length - 1; i >= 0; i--) {
System.out.print(arr[i] + "\t");
}
}else{
System.out.println("你输入的不是整数");
}
}
}