这个简单的JAVA小问题,求大佬解答!

2025-06-29 02:05:39
推荐回答(5个)
回答1:

代码修改如下:

import java.util.Scanner;

public class zbx {
    public static  void main(String[] args){

        System.out.println("kkk");

        double[] a= new double[10];
        double sum = 0;
        double max = 0;
        double min = 100;
        double sum1 = 0;

        Scanner sc = new Scanner(System.in);
        System.out.println("输入10个分数");

        for(int j=0;j<10;j++)
        {
            a[j]= sc.nextDouble();
            if(max                max=a[j];
            if(min>a[j])
                min=a[j];
            sum+=a[j];
        }

        sum1 = sum-max-min;
        System.out.println("去掉最高" + max + ",最低分"+min+", 平均分为"+sum1/8);


    }

}

运行截图:

回答2:

因为你的max和min都是等于0,+max-min相当于没有变化。图片有点不清晰,看起来是这样,如果是求平均分的话,不需要sum1这个变量,也不需要定义a这个数组。

double sum = 0;
for(int i = 0; i < 10; i++){
    sum += scanner.nextDouble();
}
System.out.println("平均分为:" + (sum / 10));

如果需要得到最大值和最小值

double sum = 0;
double max = 0;
double min = 0;
double tmp = 0;
for(int i = 0; i < 10; i++){
    tmp = scanner.nextDouble();
    if(tmp > max){
        max = tmp;
    }
    if(tmp < min){
        min = tmp;
    }
    sum += tmp;
}
System.out.println("平均分为:" + (sum / 10));
System.out.println("最大值为:" + max);
System.out.println("最小值为:"  +  min);

回答3:

代码看不清,百度知道里面,可以直接发代码的,看你的代码结构是会走那一行的。

回答4:

a[j]=scanner.nextDouble();  这句放前面吧,要不每个值都是0,没比较意义

回答5:

先赋值在运算 把a[j]=scanner.nextDouble();这句提 到两个判断前。