为了账号安全,请及时绑定邮箱和手机立即绑定

最高分最低分问题,求大神解答

import java.util.Scanner;
public class Job4 {
 public static void main(String[] args){
  
 
  float[] scores=new float[10];   
  
 
  Scanner input=new Scanner(System.in);
  System.out.println("请输入10个分数:");
  for (int i=0;i<10;i++){
   
   scores[i]=input.nextFloat();}
  float max=scores[0];
  float min=scores[0];                //大神们,这句话为什么我放在下划线下面输出结果最小值会是0啊,无论输入什么数,最小值都是0
  
  for (int i=0;i<10;i++){
   
   
  
  
  if (scores[i]>max){
   max=scores[i];
  }
  if (scores[i]<min){
   min=scores[i];
  }
   
  }
  double sum=0;
  double avg=0;
  for (int i=0;i<scores.length-2;i++){
   if ((scores[i]>min)&&(scores[i]<max)){
    sum=sum+scores[i];
    
   }
  }
  avg=sum/(scores.length-2);
  System.out.println("max="+max);
  System.out.println("min="+min);
  System.out.println("avg="+avg);
  
 }

}

正在回答

2 回答

因为定义最小值是在你输入数据之前 ,系统默认数组的第一个数为0  ,你后面的判断也就是和0 比较了 ,你要输入的数有比0小的  ,输出的就不i是0 了。

0 回复 有任何疑惑可以回复我~
#1

皓婆子 提问者

非常感谢!
2015-04-05 回复 有任何疑惑可以回复我~

你放在循环外面了,不随外层循环的进行而改变。而实际上没输入一个新的数字需要重新判断并设置最大最小值的比较基准,所以一直都是0。

0 回复 有任何疑惑可以回复我~
#1

皓婆子 提问者

原程序也是在FOR循环外面呀
2015-04-02 回复 有任何疑惑可以回复我~
#2

用户已禁用 回复 皓婆子 提问者

不好意思,我看错了,我再测试一下
2015-04-02 回复 有任何疑惑可以回复我~
#3

用户已禁用 回复 皓婆子 提问者

你的意思是下面这两句话放在哪儿? float max=scores[0]; float min=scores[0];
2015-04-02 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530797    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

最高分最低分问题,求大神解答

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号