方法的练习

文章提供了四个编程题目,涉及数字逻辑判断、数组操作和评分系统算法。第一题检查数字是否为逢7必过数;第二题求不含7且偶数的数组元素和;第三题实现数组反转;第四题设计计算评委打分平均值的方法,去除最高分和最低分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法练习

题1

游戏:逢7过    规则:从任意一个数字开始报数,当你要报的数字包含7或者是7的倍数时都要说过。输入一个数,判断是不是逢7过的数。


            int tempNumber=number;    //定义一个临时变量,以便后面用的时候不改变原数据
            while(true)
            {

                int ge=tempNumber%10;   //取到数字的个位
                if(ge==7 || number%7==0)    //判断个位包含7或者这个数是7的倍数
                {
                    System.out.println(number+" 是逢7必过数");
                    break;
                }
                else
                {
                    //如果不是7的倍数,并且个位不是7,那么就减少一位,继续判断前面一位
                    tempNumber=tempNumber/10;    
                }
                //如果该数的每一位都判断完了,没有一位是7,那么输出该数不是,且跳出循环
                if(tempNumber==0)       
                {
                    System.out.println(number+" 不是逢7必过数");
                    break;
                }

            }
  

题2

有一个数组,求出该数组中满足要求的元素和,

要求是:求和的元素个位和十位都不能是7,并且只能是偶数

        int sum=0;
        for (int i = 0; i < arr.length; i++){
            //判断是偶数,并且个位十位都不是7
            if(arr[i]%2==0 && arr[i]%10!=7 && arr[i]/10%10!=7){
                sum=sum+arr[i];
            }
        }

题3

数组元素反转:将数组中所有的元素逆制

//定义start表示数组第一个元素的下标

//定义end表示数组最后一个元素下标

使用while循环,当数组首尾的数字交换后,start++,end--,即要交换的数字下标往中间移动一格,如果start==end,表示数组元素为单个,最后换到了最中间一个,此时不用再次交换,循环结束。如果start>end,表示数组最中间两个数字交换之后,此时数组交换完了,那么如果再次交换,那么就是将已经交换过的再换回来,所以此时对要求来说是错误操作,那么循环结束。

        int start=0;   //第一个元素下标
        int end=arr.length-1;   //最后一个元素下标
        /*如果数组元素为奇数个,那么最后start和end都是最中间的那个元素下标
        如果数组元素为偶数个,那么start和end是最中间那两个元素的下标,若再次start++,end--
        那么就是将最中间两个已经交换的数再交换回来(此时start>end了)*/
        while (start<end)       
        {
            int temp=arr[start];   //定义一个临时变量,用来作为交换两数的介质
            arr[start]=arr[end];
            arr[end]=temp;
            start++;       //交换完后开始下标往后走
            end--;         //末尾下标往前走
        }

题4

评委打分

需求:在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。

选手的最后得分为:去掉一个最高分和一个最低分后 的4个评委平均值 (不考虑小数部分) 

 1、建立一个长度为6的数组用来存储6位评委打的分数

2、定义一个方法,用来将六位评委的分数依次存入数组中

 

    public static void getScore(int[] arr)
    {
        int time=arr.length;   //time=6
        while(time>0)
        {
            System.out.print("第"+(arr.length-time+1)+"位评委打分:");
            int score=scanner.nextInt();
            if(score<=100 && score>=0)
            {
                arr[arr.length-time]=score;
                time--;
            }
            else
            {
                System.out.println("您输入的分数不合法!请重新输入:");
            }
        }
    }

3、定义一个方法,返回数组中的最大值

    public static int getMax(int[] arr)
    {
        int max=0;
        for (int i=0;i<arr.length;i++)
        {
            if(arr[i]>max)
            {
                max=arr[i];
            }
        }
        return max;
    }

4、定义一个方法,返回数组中的最小值

public static int getMin(int[] arr)
    {
        int min=arr[0];
        for (int i = 0; i < arr.length; i++)
        {
            if(arr[i]<min)
            {
                min=arr[i];
            }
        }
        return min;
    }

5、定义一个方法,用来计算数组中六位评委的总分,然后减去最高分和最低分,然后再除4,得到平均分

public static void getAverage(int[] arr,int max,int min)
    {
        int sum=0;        //定义数组的总和
        int average;    //定义四个评委的平均分
        for (int i = 0; i < arr.length; i++)    //求数组的总和
        {
            sum+=arr[i];
        }
        average=(sum-max-min)/4;
        System.out.println("选手的平均分为:"+average);
    }

6、再主方法中调用这些方法

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值