说明如下:"按此顺序询问用户以下信息:
我上传了我的代码,评分软件给了我一个零,说程序与作业不一致,但是,在测试我的代码时,它只是按照作业的要求运行。任何关于为什么会发生这种情况的反馈都将不胜感激。
这是我的代码:
public class TwoSmallest
{
public static void main (String[] args)
{
double terminator;
System.out.print ("Please enter a terminating value: ");
terminator = IO.readDouble();
double lowest1;
double lowest2;
System.out.println("Please enter sequence of numbers:");
lowest1 = IO.readDouble();
while (lowest1 == terminator)
{
IO.reportBadInput();
lowest1 = IO.readDouble();
}
lowest2 = IO.readDouble();
while (lowest2 == terminator)
{
IO.reportBadInput();
lowest2 = IO.readDouble();
}
double input;
do
{
input = IO.readDouble();
if (input < lowest1)
{
if(lowest2 < lowest1)
lowest2 = lowest1;
lowest1 = input;
}
else if (input < lowest2)
lowest2 = input;
}while (input != terminator);
System.out.println("RESULT: " + lowest1);
System.out.println("RESULT: " + lowest2);
}
}
答案 0 :(得分:0)
以下是您的解决方案未处理的两种情况:
假设你给出了数字序列3,7,1,你的代码的结果是1和7而不是1和3。 这是因为当输入&lt;时,你没有改变最低2的值。 lowest1。
如果你的输入是3,1,7,其中第一个数字是最低1,第二个数字是最低2然后输入变量值是7然后条件(输入&lt; lowest1)是假的,所以不会交换最低1和最低2个值,结果将是3和1而不是1和3。