0
的说明是:“要求用户提供以下信息,顺序如下:。找到两个最小的值输入
- 一个结尾值(实数)用户将稍后再输入该值,指示表示已完成输入
- 实数序列继续询问数字,直到输入终止值
- 计算并输出最小和次小的实数,依次为最小和次最小数字可能相同(如果序列包含重复数字)。“
我上传了我的代码,分级软件给了我一个零,说程序与赋值不一致,但是,当测试我的代码时,它的运行正如分配所需的那样。任何反馈,为什么这可能发生,将不胜感激。
这是我的代码:
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);
}
}
如果你认为他错了,你可以直接作为他吗? –
您正在处理终止符值。此外,如果输入以2,1开头,则将分配2作为最低数字,将1作为第二低数字。并且保证在终结者前至少输入2个数字? – Cinnam
由于Cinnam指出的缺陷,您最好将所有输入值存储在一个数组中,然后在打印之前计算两个最小的数字。 – RobertR