无法获得所需的输出

时间:2018-12-29 22:24:23

标签: java

基本上,我已要求用户输入两个考试成绩(双打)。如果两个考试的平均分数均超过90,则屏幕上会显示一条消息,提示他们获得了A,以此类推。

无论我输入什么组合,它总是输出用户获得了'C'成绩,即使他们没有获得。

这是什么问题?

没有编译器错误。

package test;
import java.util.Scanner;

class test3 {
public static void main(String args[]) {
    Scanner zino = new Scanner(System.in);

    double score1 = 0;
    double score2 = 0;
    double average = 0;

    average = (score1 + score2) / 2 ;

    System.out.println("Enter score 1 ");
     score1 = zino.nextDouble();

     System.out.println("Enter score 2 ");
     score2 = zino.nextDouble();

    if(average > 90)
    {
        System.out.println(average);
        System.out.println("You got an A!");
    }

    else if(average > 80)
    {
        System.out.println(average);
        System.out.println("You got a B.");
    }

    else
    {
        System.out.println(average);
        System.out.println("You got a C.");
    }`
}

}

如果用户输入的两个分数均为100,则输出应为:

100 您得到了A!

这就是我得到的:

0.0 你有C。

2 个答案:

答案 0 :(得分:0)

将代码平均设置为(score1 + score 3)/ 2;在获得用户输入后。

您的代码应如下所示:

 System.out.println("Enter score 1 ");
 score1 = zino.nextDouble();

 System.out.println("Enter score 2 ");
 score2 = zino.nextDouble();

 average=(score1+score 3)/2;  

答案 1 :(得分:-1)

您的问题是,您正在计算之前的平均值,您正在读取两个分数的值。

average = (score1 + score2) / 2 ;

运行此行时,score1score2都为零,因此将average设置为( 0 + 0 ) / 2,当然也为零。

以后在您的程序中,您拥有

score1 = zino.nextDouble();
...
score2 = zino.nextDouble();

score1score2设置为用户输入的值。但是您再也不会计算average了-因此它保持为零。

您需要做的是将average = (score1 + score2) / 2;行向下移动 ,以便它在设置score1和{的两行之后 之后运行{1}}。