第六次作业

小楠参 / 2023-05-06 / 原文

1、给定一个有9个整数(1,6,2,3,9,4,5,7,8)的数组,先排序,然后输出排序后的数组的值。

public static void main(String[] args) {
        int[] a = new int[] {1,6,2,3,9,4,5,7,8};
        // 第一个for里面的i控制的是数组里的第几个索引位置的元素
        for(int i = 0;i<a.length;i++){
            // 第二个for里面的j控制的是和后面的人比较的次数
            for(int j = 0; j<a.length-i-1;j++){
                if(a[j]>a[j+1]){
                    int temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(a));
    }

 2、 输出一个double型二维数组(长度分别为5、4,值自己设定)的值。

public static void main(String[] args) {
        //第一个中括号代表个数,第二个代表括号里面的个数
        double[][] a = {{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4}};
        for(int i = 0;i<5;i++){
            for(int j = 0;j<4;j++){
                System.out.print(a[i][j]+" ");
            }
            System.out.println('\n');
        }
    }

 3、 在一个有8个整数(18,25,7,36,13,2,89,63)的数组中找出其中最大的数及其下标。

public static void main(String[] args) {
        int[] a = {18,25,7,36,13,2,89,63};
        int max = a[0];
        for(int i = 0; i<a.length;i++){
            if(max<a[i]){
                max = a[i];
            }
        }
        int index = Arrays.binarySearch(a, max);
        System.out.println("元素" + max + "在第" + index + "个位置");
        System.out.println("最大值为"+max);
}

 4、将一个数组中的元素逆序存放

public static void main(String[] args) {
        int[] a = {1,2,3,4,5,6,7,8,9};
        for(int i = 0;i<a.length;i++){
            for(int j = 0 ;j<a.length-i-1;j++){
                if(a[j]<a[j+1]){
                    int temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(a));
    }

 5. 将一个数组中的重复元素保留一个其他的清零。

    public static void main(String[] args) {
        int[] a = {1,2,3,4,5,6,7,7,8,9};
        for(int i = 0;i<a.length;i++){
            for(int j = 0 ;j<a.length-i-1;j++){
                if(a[j]==a[j+1]){
                    a[j] = 0;
                }
            }
        }
        System.out.println(Arrays.toString(a));
    }

 6、给定一维数组{ -10,2,3,246,-100,0,5},计算出数组中的平均值、最大值、最小值。

public static void main(String[] args){
        int[] a = {-10,2,3,246,-100,0,5};
        int sum = 0;
        int max = a[0];
        int min = a[0];
        for(int i = 0;i<a.length;i++){
            sum = sum+a[i];
        }
        System.out.println("平均值"+sum/a.length);
        for(int i = 1;i<a.length;i++){
            if(max<a[i]){
                max = a[i];
            }
        }
        System.out.println("最大值"+max);
        for(int i = 1;i<a.length;i++){
            if(min>a[i]){
                min = a[i];
            }
        }
        System.out.println("最小值"+min);
    }

 7、使用数组存放裴波那契数列的前20项 ,并输出

    public static void main(String[] args){
        int[] a = new int[20];
        a[0] = 1;
        a[1] = 1;
        for(int i=2;i<a.length;i++){
            a[i] = a[i-2]+a[i-1];
        } 
        System.out.println(Arrays.toString(a));
    }

 

 8、生成一个长度为10的随机整数数组(每个数都是0-100之间),输出,排序后,再输出

public static void main(String[] args){
        Random r = new Random();
        int[] a = new int[10];
        for(int i=0;i<a.length;i++){
            a[i] = r.nextInt(100);
        }
        System.out.println(Arrays.toString(a));
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));
    }

 9、做一个菜单切换程序。主菜单1.登陆 2.注册 3幸运抽奖 4 退出。每个菜单可以返回主菜单

public static void main(String[] args){
    menus();
}
public
static void menus(){ System.out.println("1.登录"); System.out.println("2.注册"); System.out.println("3.幸运数"); System.out.println("4.退出系统"); System.out.println("请输入您的选择"); int a = input.nextInt(); switch(a){ case 1: login(); break; case 2: register(); break; case 3: lucky(); break; case 4: System.out.println("欢迎下次使用"); System.exit(0); } } public static Map<Integer,String> dict = new HashMap<>(); public static void register(){ System.out.println("请输入您要注册的账号"); int account = input.nextInt(); int j =1; if(dict.containsKey(account)){ System.out.println("您输入的账号已经存在,请重新输入"); register(); } else{ System.out.println("请输入您设置的密码"); String password = input.next(); System.out.println("请再次输入您设置的密码"); String passwords = input.next(); do{ if(password.equals(passwords)){ dict.put(account, passwords); System.out.println("注册成功!"); menus(); }else{ if(j == 3){ System.out.println("您已经输入错误三次将返回菜单!"); menus(); } j +=1; System.out.println("请再次输入您设置的密码"); password = input.next(); } }while(true); } } public static void login(){ System.out.println("请输入您要登录的账号"); int account = input.nextInt(); int j =1; if(dict.containsKey(account) == false){ System.out.println("您输入的账号不存在,请重新输入"); login(); } else{ String password = dict.get(account); System.out.println("请输入您设置的密码"); String passwords = input.next(); do{ if(password.equals(passwords)){ System.out.println("登录成功!"); menus(); }else{ if(j == 3){ System.out.println("您已经输入错误三次将返回菜单!"); menus(); } j +=1; System.out.println("请再次输入您设置的密码"); passwords = input.next(); } }while(true); } } public static void lucky(){ Random r = new Random(); int random = r.nextInt(100); System.out.println("请输入您选择的幸运数字"); int a = input.nextInt(); if(random == a){ System.out.println("哇!您真幸运猜中了!"); menus(); }else{ System.out.println("很遗憾您没猜中这次的幸运数字是"+random); menus(); } }