如何通过此测试用例?

时间:2016-10-23 16:30:57

标签: java

创建确定最大和最小数字的程序是用户输入的一系列数字。我已经为我的代码创建了几个测试用例并且它们都可以解决,但是它失败了最简单的测试用例。当用户输入单个数字时。例如,如果用户将终止值设置为25,则输入-1,最后输入终止值,输出应为 最大:-1和最小:-1。但是,我的代码将输出最大值:0和最小值:-1 - 我为什么会这样(因为我在运行循环之前将最大值初始化为0),但是我该如何解决这个问题?

这是我的代码......

Scanner scan = new Scanner(System.in);

    // Declaration variables
    double min;
    double max = 0;

    System.out.println("Enter terminating number: ");
    double terminator = scan.nextDouble();

    System.out.println("Enter a number: ");
    double num = scan.nextDouble();
    min = num;

    if (num == terminator) {
        System.out.println("There must be one number in the list.");
        // break;
    } else {
        while (num != terminator) {
            System.out.println("");
            num = scan.nextDouble();

            if ((num < min) && (num != terminator)) {
                double temp = min;
                min = num;
                max = temp;
            } else if ((num > min) && (num != terminator)) {
                max = num;
            } else {
                max = min;
            }
        }
        System.out.println("Largest: " + max);
        System.out.println("Smallest: " + min);
    }

1 个答案:

答案 0 :(得分:1)

而不是初始化max = 0,而不是像max = num那样做min

目前尚不清楚为什么要以max的方式初始化min;输入单个数字时,它既是最小值,也是最大值。现在,修改max的唯一代码是在读取第一个数字之外的数字的循环内,因此第一个数字对它没有影响。