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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yw201605 中级黑马   /  2016-7-3 15:09  /  878 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

关于数组的数据反转,奇\偶数的反转,求解释

5 个回复

倒序浏览
昨天的作业:
package array;

import java.util.Scanner;

public class Demo {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        /*(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]
          -----------------------------------------------------------------------------*/
           int arr3[]=new int[6];
           Scanner sc=new Scanner(System.in);
           System.out.println("请输入第一个数:");
           int num1=sc.nextInt();
           System.out.println("请输入第二个数:");
           int num2=sc.nextInt();
           System.out.println("请输入第三个数:");
           int num3=sc.nextInt();
           System.out.println("请输入第四个数:");
           int num4=sc.nextInt();
           System.out.println("请输入第五个数:");
           int num5=sc.nextInt();
           System.out.println("请输入第六个数:");
           int num6=sc.nextInt();
           System.out.println("打印自定义数组:");
           arr3[0]=num1;arr3[1]=num2;arr3[2]=num3;arr3[3]=num4;arr3[4]=num5;arr3[5]=num6;
           for(int a=0;a<6;a++){
              if(a==0){
                  System.out.print("["+arr3[a]+",");
              }
              else if(a==5){
                  System.out.print(arr3[a]+"]");
              }
              else{
                  System.out.print(arr3[a]+",");
              }
           }
           int x=5;
           int[] arr4=new int[6];
           for(int a=0;a<6;a++){
               arr4[a]=arr3[x--];
           }
           System.out.println("\n"+"打印反转后的自定义数组:");
           for(int a=0;a<6;a++){
              if(a==0){
                  System.out.print("["+arr4[a]+",");
              }
              else if(a==5){
                  System.out.print(arr4[a]+"]");
              }
              else{
                  System.out.print(arr4[a]+",");
              }
           }
            arr4[1]=arr4[1]^arr4[3];
            arr4[3]=arr4[1]^arr4[3];
            arr4[1]=arr4[1]^arr4[3];
            arr4[3]=arr4[3]^arr4[5];
            arr4[5]=arr4[3]^arr4[5];
            arr4[3]=arr4[3]^arr4[5];
            System.out.println("\n"+"将翻转后的数组角标为奇数的互相交换后打印新数组:");
           for(int a=0;a<6;a++){
              if(a==0){
                  System.out.print("["+arr4[a]+",");
              }
              else if(a==5){
                  System.out.print(arr4[a]+"]");
              }
              else{
                  System.out.print(arr4[a]+",");
              }
           }
           arr4[1]=arr4[1]^arr4[5];
           arr4[5]=arr4[1]^arr4[5];
           arr4[1]=arr4[1]^arr4[5];
            System.out.println("\n"+"最后将数组最后一个角标为奇数的元素和数组中第一个角标为奇数的元素交换后打印最终的数组:");
           for(int a=0;a<6;a++){
              if(a==0){
                  System.out.print("["+arr4[a]+",");
              }
              else if(a==5){
                  System.out.print(arr4[a]+"]");
              }
              else{
                  System.out.print(arr4[a]+",");}
            }
    }
}


QQ截图20160703162800.png (16.66 KB, 下载次数: 11)

QQ截图20160703162800.png
回复 使用道具 举报
3.分析以下需求,并用代码实现:(扩展)
        (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 HomeWork_03 {
        public static void main(String[] args) {
                //创建键盘录入对象
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入第一个整数:");
                int a = sc.nextInt();
        System.out.println("请输入第二个整数:");
                int b = sc.nextInt();
                System.out.println("请输入第三个整数:");
                int c = sc.nextInt();
                System.out.println("请输入第四个整数:");
                int d = sc.nextInt();
                System.out.println("请输入第五个整数:");
                int e = sc.nextInt();
                System.out.println("请输入第六个整数:");
                int f = sc.nextInt();       
                //将数据存到数组arr中
                int[] arr = {a,b,c,d,e,f};
                //将arr数组中的内容反转
                reverseArray(arr);     
                //print(arr);
        
                //数组角标为奇数的互相交换 1和3换, 3和5换
        int temp1 = arr[1];
                arr[1] = arr[3];
                arr[3] = temp1;

                int temp2 = arr[3];
                arr[3] = arr[5];
                arr[5] = temp2;
        // 将数组最后一个角标为奇数的元素 和数组中第一个角标为奇数的元素交换
                int temp3 = arr[5];
                arr[5] = arr[1];
                arr[1] = temp3;
        //打印最终的数组
            print(arr);
        }
    //定义一个方法,将数组中的数据反转
        public static void reverseArray(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;
                        }
        }
   
     //定义一个方法,遍历数组
        public static void print(int[] arr){
                System.out.print("[");
                for (int i =0;i<arr.length ;i++ ) {
                        if (arr[i]==arr[arr.length-1]) {
                                System.out.print(arr[i]+"]");
                        }else{
                            System.out.print(arr[i]+" ");
                        }               
                }
        }
}
回复 使用道具 举报
罗森内里 发表于 2016-7-3 16:29
昨天的作业:
package array;

作业写的不错,怎么不用方法??
回复 使用道具 举报
春村 发表于 2016-7-3 17:22
3.分析以下需求,并用代码实现:(扩展)
        (1)键盘录入6个int类型的数据存数数组arr中
        (2)将arr数组中的内 ...

写的不错,赞一个
回复 使用道具 举报
yw201605 发表于 2016-7-4 08:06
作业写的不错,怎么不用方法??

一次性作业
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马