黑马程序员技术交流社区

标题: 作业题 [打印本页]

作者: yangxiaosa    时间: 2017-3-15 21:34
标题: 作业题
分析以下需求,并用代码实现
        1.键盘录入10个整数存入数组中
        2.定义一个方法将奇数放在数组的左侧,偶数放在数组的右侧
        3.定义一个方法打印原数组和处理后的数组
        4.定义一个方法传入一个int类型数组,输出这个数组中只出现一次的数字及个数
答案:
import java.util.Scanner;

public class Homework4 {
        public static void main(String[] args) {
                int[] arr = new int[10];
                Scanner sc = new Scanner(System.in);
                for (int i = 0; i < arr.length; i++) {
                        System.out.println("请输入第" + (i + 1) + "个元素的值:");
                        arr = sc.nextInt();
                }
                pirnt(arr);
                arr = swap(arr);
                pirnt(arr);

                judge(arr);
                sc.close();
        }

        // 定义一个方法传入一个int类型数组,输出这个数组中只出现一次的数字及个数
        private static void judge(int[] arr) {
                boolean b = true;
                int count = 0;
                for (int i = 0; i < arr.length; i++) {
                        for (int j = 1 + i; j < arr.length; j++) {
                                if (arr == arr[j]) {
                                        b = false;
                                        /*
                                         * 如果arr==arr[j],那么把arr[j]与arr[i+1]交换位置,同时i++,
                                         * 接着加了1的i接着找相同的数,再有就还交换 这样就把相同的数都放在一起了,同时由于每次都会
                                         * i++,这样内循环过后外循环会自动跳过这些相同的数。
                                         */
                                        int temp = arr[j];
                                        arr[j] = arr[i + 1];
                                        arr[i + 1] = temp;
                                        i++;
                                }
                        }
                        if (b) {
                                System.out.println(arr);
                                count++;
                        }
                        b = true;
                }
                System.out.println(count);

        }
//打印数组中各元素的方法
        private static void pirnt(int[] arr) {
                System.out.print("[");
                for (int i = 0; i < arr.length; i++) {
                        if (i == arr.length - 1) {
                                System.out.println(arr + "]");
                        } else {
                                System.out.print(arr + ",");
                        }
                }

        }
//奇数在前偶数在后的方法
        private static int[] swap(int[] arr) {
                int x = 0;
                int y = arr.length - 1;
                int[] arr1 = new int[arr.length];
                for (int i = 0; i < arr.length; i++) {
                        if (arr % 2 == 0) {
                                arr1[y] = arr;
                                y--;
                        } else {
                                arr1[x] = arr;
                                x++;
                        }
                }
                return arr1;
        }
}
运行结果:
请输入第1个元素的值:1
请输入第2个元素的值:2
请输入第3个元素的值:3
请输入第4个元素的值:4
请输入第5个元素的值:5
请输入第6个元素的值:6
请输入第7个元素的值:7
请输入第8个元素的值:8
请输入第9个元素的值:3
请输入第10个元素的值:5
[1,2,3,4,5,6,7,8,3,5]
[1,3,5,7,3,5,8,6,4,2]
1 7 8 6 4 2
6个






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2