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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小鲁哥哥 于 2017-9-14 15:00 编辑

【黑马程序员济南】JavaEE基础阶段必会案例NO.7

黑马程序员课程内容丰富多样,每个知识点我们都设计有新奇的案例让大家练习。黑马程序员训练营的课程也是案例驱动教学,每天都会进行大量的代码练习。今天我们就来一起做一个基础阶段第4天的一个小案例。

         案例要求:定义类:Test,定义main方法,main方法内 按以下要求编写代码:
                           1. 定义一个数组,存储以下几个考试分数:
                          88.5   96   97   74   88.2    58.5    77.9   90   99
                          计算这几个考试分数去掉最低分后的平均分,并在控制台打印输出平均分

         案例分析:我们要用到的知识点:数组定义,循环遍历数组,条件判断

         分析完一个大概以后我们先思考一个问题:如何去掉最低分?如果直接在原数组操作是不行的,因为数组的长度不可变。
         其实我们并不需要真的在数组中删掉它,只需要总和减掉最低分就可以了。
         好,大体的思路我们分析一下:
         1   定义数组
         2   遍历数组,求出最低分
         3   同时求和,减掉最低分,输出平均分
          就和把大象装冰箱是同样多步骤。         来吧,敲起来!
      
[Java] 纯文本查看 复制代码
public class Test {
        public static void main(String[] args) {
                double[] arr = {88.5,96,97,74,88.2,58.5,77.9,90,99};
                double min = arr[0];//假设第一个成绩是最低分
                for (int i = 0; i < arr.length; i++) {//遍历所有分数
                        if(arr[i] < min){//跟最低分比较,如果比最低分低[/i]
                                min = arr[i];//给最低分变量重新赋值[/i]
                        }
                }
                System.out.println("最低分是:"+min);
        }
}
[i]
结果是最低分 58.5

ok,接下来我们再求和,然后算一道小学数学就完事啦!
   
[Java] 纯文本查看 复制代码
public class Test {        public static void main(String[] args) {
                double[] arr = {88.5,96,97,74,88.2,58.5,77.9,90,99};
                double min = arr[0];//假设第一个成绩是最低分
                double sum = 0;
                for (int i = 0; i < arr.length; i++) {//遍历所有分数
                        if(arr[i] < min){//跟最低分比较,如果比最低分低[/i]
                                min = arr;//给最低分变量重新赋值
                        }
                        sum = sum+arr;//累加求和
                }
                System.out.println("最低分是:"+min);
                System.out.println("去掉最低分的平均分:"+(sum-min)/(arr.length-1));//输出结果
        }
}
来,看看结果:
   
大功告成!!
      这个案例作为一个经典案例用来复习随机数和求最值的方法,循环等等知识点非常不错,很新颖。其实,每个案例都有很多种写法,不同的人可能有不同的思路。黑马程序员训练营也是非常鼓励大家开动脑筋积极思考的。
      
      点进这个帖子的同学肯定是要奋发图强,学技术拿高薪的有志青年,这里我看你骨骼惊奇,是个绝世的练武奇才,你我有缘,今天我就把这个武林秘籍如来神掌传授于你! 什么?不想学如来神掌?不要紧!这里有各个门派的武林绝学,链接拿好!!哈哈哈哈
      
黑马,加油!

6 个回复

倒序浏览
66666666666666
回复 使用道具 举报
厉害啊!
回复 使用道具 举报
public class SumFeng {
        public static void main(String[] args) {
                double[] arr={88.5,96,97,74,88.2,58.5,77.9,90,99};
                Arrays.sort(arr);
                int sum=0;
                for (int i = 0; i < arr.length; i++) {
                        sum+=arr[i];
                }
                double n=(sum-arr[0])/8;
                System.out.println("最低分是:"+arr[0]);
                System.out.println("除下最低分的平均分是:"+n);
        }

}

算分.png (160.24 KB, 下载次数: 22)

算分.png
回复 使用道具 举报
本帖最后由 fashionkillyou 于 2017-9-22 19:41 编辑
NCnull 发表于 2017-9-20 14:45
public class SumFeng {
        public static void main(String[] args) {
                double[] arr={88.5,96,97,74,88.2, ...

static void sort(double[] a)
          对指定的 double 型数组按数字升序进行排序。
层主用了Arrays类的有参构造方法,更加简单明了
回复 使用道具 举报
高手无处不在
回复 使用道具 举报
iMoney 中级黑马 2017-9-30 15:03:49
7#


小米笔记本pro.jpg (185.9 KB, 下载次数: 26)

小米笔记本pro.jpg
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马