A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© walkk 中级黑马   /  2016-7-26 22:27  /  861 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

(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 个回复

倒序浏览
import java.util.Scanner;
class Test6_Array {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入数组中的第一个整数");
                int a1 = sc.nextInt();
                System.out.println("请输入数组中的第二个整数");
                int a2 = sc.nextInt();
                System.out.println("请输入数组中的第三个整数");
                int a3 = sc.nextInt();
                System.out.println("请输入数组中的第四个整数");
                int a4 = sc.nextInt();
                System.out.println("请输入数组中的第五个整数");
                int a5 = sc.nextInt();
                System.out.println("请输入数组中的第六个整数");
                int a6 = sc.nextInt();
                int[] arr = {a1,a2,a3,a4,a5,a6};
                reseverArray1(arr);
                reseverArray2(arr);
                print(arr);
        }
        //将数组中的元素反转
        public static void reseverArray1(int[] arr) {
                for (int i=0;i<arr.length/2 ;i++ ) {
                        int temp=arr[i];
                        arr[i]=arr[arr.length-1-i];
                        arr[arr.length-1-i]=temp;
                }
        }
        /*
        如果输入int[] arr={1,2,3,4,5,6};
        那么反转后[]arr={6,5,4,3,2,1};
        第一次{6,3,4,5,2,1}
        第二次{6,3,4,1,2,5}
        第三次{6,5,3,1,2,3}
        有几个奇数,交换几次;
        奇数的个数为arr.length/2
        因为角标的初始值有0,所以交换次数为arr.length/2
        */
        public static void reseverArray2(int[] arr) {
                //先从小向大交换
                if (arr.length>4) {  //若arr.length<4则标号只有一个奇数
                for (int i=1;i<=arr.length/2-1 ;i++ ) {//交换次数
                        int temp=arr[2*i-1];
                        arr[2*i-1]=arr[2*i+1];
                        arr[2*i+1]=temp;
                }
                if (arr.length%2==0) {
                int temp=arr[arr.length-1];
                arr[arr.length-1]=arr[1];
                arr[1]=temp;
                }else {
                int temp1=arr[arr.length-2];
                arr[arr.length-2]=arr[1];
                arr[1]=temp1;
                }
                }
        }
        public static void print(int[] arr) {
                for (int i = 0;i<arr.length ;i++ ) {
                        System.out.print(arr[i]);
                }
        }

}
回复 使用道具 举报
huangsong1002 发表于 2016-7-26 22:29
import java.util.Scanner;
class Test6_Array {
        public static void main(String[] args) {

多谢大神
回复 使用道具 举报
看视频,多打代码,视频里有,学会换思路解题
回复 使用道具 举报
xpf0121 发表于 2016-7-26 22:38
看视频,多打代码,视频里有,学会换思路解题

谢谢大腿
回复 使用道具 举报
这解题思路很清晰,好厉害,我只能佩服~
回复 使用道具 举报
这题 我做出来了  啊哈哈
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马