如何在Java中替换值

时间:2015-06-03 16:20:57

标签: java

因此,我正在尝试编写一个程序,您可以在其中输入成绩,总计,平均成绩,然后降低最低成绩。这是我到目前为止,但是,当我尝试运行程序时,当我输入值100,100,75时,我得到平均值92。

平均值应打印为100.代码有什么问题?

提前致谢!

import java.util.Scanner;

public class l3_drop_lowest_slide36 {

public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        double grade;
        int count;
        double minGrade;
        double sumGrade;
        double average;

        System.out.println("Begin entering grades below. When done, type -1.");
        System.out.println();

        count = 0;
        sumGrade = 0;
        grade = 0;
        minGrade = 100;

        while ( grade != -1 ) {

            sumGrade += grade;
            count++;
            System.out.print("Grade: ");
            grade = input.nextDouble();

        } 

        if ( grade < minGrade ) {

            minGrade = grade;

        } 

        if ( grade == -1 ) {
            sumGrade = sumGrade - minGrade;
            count = count - 1;
            average = (sumGrade / count);
            System.out.print("Your average is: " +average);
        }



    } 


    }

3 个答案:

答案 0 :(得分:2)

您可以这样做:

    while ( grade != -1 ) {

        sumGrade += grade;
        count++;
        System.out.print("Grade: ");

        grade = input.nextDouble();

        if(grade < minGrade && grade != -1)
            minGrade = grade;

    } 

    sumGrade = sumGrade - minGrade;
    count = count - 1;
    average = (sumGrade / count);
    System.out.print("Your average is: " +average);

这样你就可以降低最低等级。

答案 1 :(得分:0)

你的

if ( grade < minGrade ) {

            minGrade = grade;

        } 

应该在你的

里面
while ( grade != -1 ) {

            }

因为当你得到-1,-1&lt; 100和 minGrade = -1

  

sumGrade - minGrade =(100 + 100 + 75) - (-1)= 276

当你除以276/3 = 92时。

答案 2 :(得分:0)

您首先阅读grade = input.nextDouble();,然后检查它是否为-1。你的while循环运行4次而不是3.所以,基本上你的计数是4而不是3.你的最低成绩是-1(最后一个输入值)而不是75.修正那个逻辑你应该是好的。