- /* 分析以下需求,并用代码实现:(扩展)
- (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 Homework3 {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- System.out.println("请输入您的数组六个数:");
- int[] arr = new int[7];
-
- //通过键盘录入获取一个数组
- for(int x=0; x<arr.length; x++) {
- int y = sc.nextInt();
- arr[x] = y;
- }
-
- //将数组元素反转
- for(int x=0; x<arr.length/2; x++) {
- int temp = arr[x];
- arr[x] = arr[arr.length-1-x];
- arr[arr.length-1-x] = temp;
- }
-
- //角标奇数进行互换
- for(int x=2; x<=arr.length-1; x++) {
- if(x%2 == 1) {
- if(x<=arr.length-1) {
- int temp = arr[x];
- arr[x] = arr[x-2];
- arr[x-2] = temp;
- }else {
- break;
- }
- }
- }
-
- //将最后一个奇数角标的元素和第一个奇数角标的元素互换
- if((arr.length-1)%2 == 1) {
- int temp = arr[1];
- arr[1] = arr[arr.length-1];
- arr[arr.length-1] = temp;
- }else {
- int temp = arr[1];
- arr[1] = arr[arr.length-2];
- arr[arr.length-2] = temp;
- }
-
-
- //遍历数组
- for(int x=0; x<arr.length; x++) {
- System.out.print(arr[x] + " ");
- }
-
- }
- }
复制代码 不仅限于6个长度的一维数组,可以定义N个长度的,只需要将动态数组的长度修改就行.目前个人仅亲测6.7.8个长度的数组,运行完美.
|
|