Java基础练习

1.逢七跳过

public class HomeWork07_1 {
    public static void main(String[] args) {
        //朋友聚会的时候可能会玩一个游戏:逢七过。
        //规则是:从任意一个数字开始报数,当你要报的数字包含7或者是7的倍数时都要说:过。
        //为了帮助大家更好的玩这个游戏,这里我们直接在控制台打印出1-100之间的满足逢七必过规则的数据。
        //这样,大家将来在玩游戏的时候,就知道哪些数据要说:过。
        //1.遍历1-100之间的数据
        for (int i = 1; i <= 100; i++) {
            //2.判断数字是否满足条件:包含7或者是7的倍数
            if (i % 7 == 0 || i % 10 == 7 || i / 10 % 10 == 7)
                //打印满足条件的数据
                System.out.print(i+" ");
        }
    }
}

2. 数组元素求和

public class HomeWork07_2 {
    public static void main(String[] args) {
        //有这样的一个数组,元素是{68,27,95,88,171,996,51,210}。求出该数组中满足要求的元素和,
        //要求是:求和的元素个位和十位都不能是7,并且只能是偶数
        //1.构建已知数组
        int[] arr = {68, 27, 95, 88, 171, 996, 51, 210};
        //2.遍历数组,对数据进行筛选:个位数和十位数非7,偶数
        int sum = 0;
        int length = arr.length;
        for (int i = 0; i < length; i++) {
            if (arr[i] % 10 != 7 && arr[i] / 10 % 10 != 7 && arr[i] % 2 == 0) {
                //3.符合条件的数据进行求和
                sum += arr[i];
            }
        }
        //打印求和结果
        System.out.println(sum);
    }
}

3. 判断两个数组是否相同

public class HomeWork07_3 {
    public static void main(String[] args) {
        //定义一个方法,用于比较两个数组的内容是否相同
        //1.构建四个数组,用来检验数组比较方法
        int[] arr1 = {22, 33, 22, 55, 66, 88};
        int[] arr2 = {22, 33, 22, 55, 66, 88};
        int[] arr3 = {22, 33, 22, 55, 66, 8};
        int[] arr4 = {22, 33, 22, 55, 66};
        //3.调用方法,并输出结果,ture为内容相同,false不同
        //相同时比较
        System.out.println(compareArr(arr1,arr2));
        //长度相同,内容不同时比较
        System.out.println(compareArr(arr1,arr3));
        //长度不同时比较
        System.out.println(compareArr(arr1,arr4));
    }

    //2.定义比较两个数组内容是否相同的方法
    public static boolean compareArr(int[] arr1, int[] arr2) {
        //长度不同时,内容不同
        if (arr1.length != arr2.length) return false;
        //长度相同时,比较每个相同下标下的数组内容,出现不同内容时返回false
        for (int i = 0; i < arr1.length; i++) {
            if (arr1[i] != arr2[i]) return false;
        }
        //除去以上的条件,则认为两个数组内容相同
        return true;
    }
}

4. 查找元素在数组中出现的索引位置

import java.util.Scanner;

public class HomeWork07_4 {
    public static void main(String[] args) {
        //已知一个数组 arr = {19, 28, 37, 46, 50}; 键盘录入一个数据,查找该数据在数组中的索引。
        //并在控制台输出找到的索引值。如果没有查找到,则输出-1
        //1.创建已知数组
        int[] arr = {19,28,37,46,50};
        System.out.println("请输入一个数据,系统将为你查询其索引:");
        //2.键入数据获取
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        //3.遍历数组,将获取的数据与数据元素作比较
        int length = arr.length;
        int index = -1;
        for (int i = 0; i < length; i++) {
            //4.若有符合的数据,i赋值给下标index
            if (arr[i]==num) {
                index = i;
            }
        }
        //5.打印下标,并进行提示
        System.out.println("其索引为"+index+"(-1表示未查询到数据)");
    }
}

5. 数组元素反转

import java.util.Arrays;

public class HomeWork07_5 {
    public static void main(String[] args) {
        //已知一个数组 arr = {19, 28, 37, 46, 50}; 用程序实现把数组中的元素值交换,
        //交换后的数组 arr = {50, 46, 37, 28, 19}; 并在控制台输出交换后的数组元素。
        //1.定义已知数组
        int[] arr = {19, 28, 37, 46, 50};
        //6.调用数据反转方法并打印结果
        System.out.println(Arrays.toString(reverseArr(arr)));
    }

    //2.定义翻转数组内容的方法
    public static int[] reverseArr(int[] arr) {
        //3.定义两个下标用来进行数据的反转控制
        int start = 0;
        int end = arr.length - 1;
        //4.确认需要反转的次数
        int times = 0;
        if (arr.length % 2 == 0) {
            times = arr.length / 2;
        } else {
            times = (arr.length - 1) / 2;
        }
        //5.遍历数组并进行数据反转
        for (int i = 0; i < times; i++) {
            //下标控制数据反转
            int tempt = arr[start];
            arr[start] = arr[end];
            arr[end] = tempt;
            //下标进行自增或者自减
            start++;
            end--;
        }
        return arr;
    }
}

6. 评委打分

import java.util.Scanner;

public class HomeWork07_6 {
    public static void main(String[] args) {
        //在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。
        //选手的最后得分为:去掉一个最高分和一个最低分后 的4个评委平均值 (不考虑小数部分)。
        //1.动态初始化一个数组用于存储评委评分
        int[] scores = new int[6];
        //2.遍历数组,键入评委评分并赋值
        int length = scores.length;
        Scanner scanner = new Scanner(System.in);
        System.out.println("请各位评委打分:");
        for (int i = 0; i < length; i++) {
            int score = scanner.nextInt();
            scores[i] = score;
        }
        //6.调用获取最终分数的方法并打印
        System.out.println("选手最终分数为:" + getScores(scores));
    }

    //5.定义获得最终分数的方法
    public static int getScores(int[] arr) {
        int max = getMax(arr);
        int min = getMin(arr);
        int length = arr.length;
        int sum = 0;
        for (int i = 0; i < length; i++) {
            if (arr[i] != max && arr[i] != min) sum += arr[i];
        }
        return sum / 4;
    }

    //3.定义获得的最高分方法
    public static int getMax(int[] arr) {
        int max = arr[0];
        int length = arr.length;
        for (int i = 0; i < length; i++) {
            if (arr[i] > max) max = arr[i];
        }
        return max;
    }

    //4.定义获得的最低分方法
    public static int getMin(int[] arr) {
        int min = arr[0];
        int length = arr.length;
        for (int i = 0; i < length; i++) {
            if (arr[i] < min) min = arr[i];
        }
        return min;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值