java 如何计算最高数并与平均数进行比较?

n8ghc7c1  于 2022-12-25  发布在  Java
关注(0)|答案(2)|浏览(353)

这就是我正在努力做的:
用户需要输入4个数字(已完成)
然后我想计算这4位数的平均值,但第一位数需要计数1x,第二位数需要计数2x,第三位数需要计数3x,第四位数需要计数4x。(已经完成)
(this是我被卡住的部分)
同时计算最高分数。如果最高分数比平均分数高出3分以上,屏幕将显示:

cheater!
-1

如果最高分比平均分高出不到3分,则屏幕上将显示实际平均分,四舍五入到小数点后1位。

public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int i;
        double sum;
        double number;
        double result = 0;

        for (i = 1; i < 5; i++) {
            number = sc.nextDouble();
            sum = number * i;
            result += sum;
            if (number%result > 3) {
                System.out.println("cheater!\n" + "-1.0");

            } else{
                System.out.printf("%3.1f", result / 10);
            }
        }
    }
}

正如你在上面看到的,这就是我现在得到的。不知道我到底做错了什么吗?
以下是我的输入/结果:

5.5
6.1
7.3
5.8

0.6cheater!
-1.0
cheater!
-1.0
cheater!
-1.0

预期成果:
样品输入1:

5.5
6.1
7.3
5.8

示例输出1:

6.3

样本输入2:

3.0
5.4
9.8
2.5

示例输出2:

cheater!
-1.0
9udxz4iz

9udxz4iz1#

double sum;
        double number;
        double result = 0;
        double max = 0;

        //Compute the sum
        for (int i = 1; i < 5; i++)
        {
            number = sc.nextDouble();
            sum = number * i;
            result += sum;

            if (max < number)
                max = number;
        }

        //Average
        double average = Math.Round((double)result / 10, 1);

        //Compare to data
        if (max > average + 3)
            System.out.println("cheater!\n" + "-1.0");
        else
            System.out.printf("%3.1f", average);
9o685dep

9o685dep2#

1.要计算平均值,您需要将总和(sum variable)除以数字量(在您的情况下为4)
1.你需要使用数组来找到最大的数

  1. if逻辑不正确
    我建议:
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double sum;
        double[] number = new double[4];
        double result = 0;
        double highestNum = 0;

        for (int i = 0; i <= 3; i++) {
            number[i] = sc.nextDouble();
            sum += number[i] * i;
            if(highestNum<number[i]){
                 highestNum = number[i];
                 }
            }
            double aveNum = sum/4;
               
            if ((highestNum-aveNum)> 3) {
                System.out.println("cheater!\n" + "-1.0");

            } else{
                System.out.printf("%3.1f", result / 10);
            }
        }
    }

相关问题