2016-02-10 73 views
1

有人可以解释为什么我得到逻辑错误。 输出应该 输入·浇道·1·名称:·输入·浇道·1·时间·(在·分钟):·输入·浇道·2·名称:·输入·浇道·2·时间·(在·分钟):·输入·亚军·3·名称:·(在·分·输入·亚军·3·时间):·Runner3↵ Runner1↵ Runner2↵Java Codelab逻辑错误

import java.util.Scanner; 

public class Runners { 

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

    double t1, 
      t2, 
      t3; 



    System.out.print("Enter runner 1 name:"); 
    String name1; 
    name1 = keyboard.nextLine(); 
    System.out.print(" Enter runner 1 time (in minutes):"); 
    String time1; 
    time1 = keyboard.nextLine(); 

    System.out.print(" Enter runner 2 name:"); 
    String name2; 
    name2 = keyboard.nextLine(); 
    System.out.print(" Enter runner 2 time (in minutes):"); 
    String time2; 
    time2 = keyboard.nextLine(); 

    System.out.print(" Enter runner 3 name:"); 
    String name3; 
    name3 = keyboard.nextLine(); 
    System.out.print(" Enter runner 3 time (in minutes):"); 
    String time3; 
    time3 = keyboard.nextLine(); 


    t1 = Double.parseDouble(time1); 
    t2 = Double.parseDouble(time2); 
    t3 = Double.parseDouble(time3); 




    if(t1 > t2 && t1 > t3){ 
     if(t2>t3){ 
      System.out.print(" "+ name3 + "\n"+ name2 + "\n" + name1+ "\n"); 
     } 
     else{ 
      System.out.print(" "+ name2 + "\n" + name3 + "\n" + name1+ "\n"); 
     } 
    } 
    else if(t2>t1 && t2>t3){ 
     if(t1>t3){ 
      System.out.print(" " + name3 + "\n" + name1 + "\n" + name2+ "\n"); 
     } 
     else{ 
      System.out.print(" " + name1 + "\n" + name3 + "\n" + name2+ "\n"); 
     } 
    } 
    else if(t3>t2 && t3>t1){ 
     if(t2>t1){ 
      System.out.print(" " + name1 + "\n" + name2 + "\n" + name3+ "\n"); 
     } 
     else{ 
      System.out.print(" " + name2 + "\n" + name1 + "\n" + name3+ "\n"); 
     } 
    } 
    else if(t3==t2 && t3==t1){ 
     if(t2>t1){ 
      System.out.print(" " + name1 + "\n" + name2 + "\n" + name3+ "\n"); 
     } 
     else{ 
      System.out.print(" " + name1 + "\n" + name2 + "\n" + name3 + "\n"); 
     } 




} 
    } 
} 
+0

你的问题不是很清楚你能否详细说明 – basic

+0

提示是:11。跑步 写一个程序,询问三名跑步者的名字和时间,几分钟内,他们每个人都花了 完成比赛。程序应显示 命令中的跑步者姓名,他们已完成。我必须使输出与我上面发布的完全相同,当我发布它时,我会得到一个逻辑错误。它说我的标准输出内容不正确。 – jkjk

+0

没有逻辑错误?它完全按照它应该的输出。首先完成第一名,然后是第二名,然后是第三名。 – basic

回答

0

我来到这里寻找答案到同一个问题,并在本例中使用代码。最后有一个合乎逻辑的问题。第67行中的AND应该是OR。你不能有1等于2和2等于3的条件,然后询问2是否大于1并期望它工作。

import java.util.Scanner; 

public class Runners { 

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

    double t1, 
      t2, 
      t3; 



    System.out.print("Enter runner 1 name:"); 
    String name1; 
    name1 = keyboard.nextLine(); 
    System.out.print(" Enter runner 1 time (in minutes):"); 
    String time1; 
    time1 = keyboard.nextLine(); 

    System.out.print(" Enter runner 2 name:"); 
    String name2; 
    name2 = keyboard.nextLine(); 
    System.out.print(" Enter runner 2 time (in minutes):"); 
    String time2; 
    time2 = keyboard.nextLine(); 

    System.out.print(" Enter runner 3 name:"); 
    String name3; 
    name3 = keyboard.nextLine(); 
    System.out.print(" Enter runner 3 time (in minutes):"); 
    String time3; 
    time3 = keyboard.nextLine(); 


    t1 = Double.parseDouble(time1); 
    t2 = Double.parseDouble(time2); 
    t3 = Double.parseDouble(time3); 




    if(t1 > t2 && t1 > t3){ 
     if(t2>t3){ 
      System.out.print(" "+ name3 + "\n"+ name2 + "\n" + name1+ "\n"); 
     } 
     else{ 
      System.out.print(" "+ name2 + "\n" + name3 + "\n" + name1+ "\n"); 
     } 
    } 
    else if(t2>t1 && t2>t3){ 
     if(t1>t3){ 
      System.out.print(" " + name3 + "\n" + name1 + "\n" + name2+ "\n"); 
     } 
     else{ 
      System.out.print(" " + name1 + "\n" + name3 + "\n" + name2+ "\n"); 
     } 
    } 
    else if(t3>t2 && t3>t1){ 
     if(t2>t1){ 
      System.out.print(" " + name1 + "\n" + name2 + "\n" + name3+ "\n"); 
     } 
     else{ 
      System.out.print(" " + name2 + "\n" + name1 + "\n" + name3+ "\n"); 
     } 
    } 
    else if(t3==t2 || t3==t1){ 
     if(t2>t1){ 
      System.out.print(" " + name1 + "\n" + name2 + "\n" + name3+ "\n"); 
     } 
     else{ 
      System.out.print(" " + name1 + "\n" + name2 + "\n" + name3 + "\n"); 
     } 




} 
    } 
}