2016-07-29 6 views
-1

Ich löste "Vergleichen Sie die Triplets" in Golang mit dem folgenden Code, aber es sagt, dass die Antwort falsch ist. Wenn ich den Code in meiner lokalen Umgebung ausführen, zeigt es die gewünschten Ergebnisse.Warum ist dieser korrekte Code in Golang bei HackerRank falsch?

(here is the link to the problem at HackerRank)

Im Folgenden finden Sie den Code ein.

package main 

import "fmt" 

func main() { 
    a, b := ReadArrays() 
    sa, sb := CompareIt(a, b) 
    fmt.Printf("A: %d, B: %d\n", sa, sb) 
} 

func CompareIt(a, b []int) (int, int) { 
    var scoreA int 
    var scoreB int 

    for i := 0; i < 3; i++ { 
     if a[i] > b[i] { 
      scoreA += 1 
     } else if b[i] > a[i] { 
      scoreB += 1 
     } 
    } 
    return scoreA, scoreB 
} 

func ReadArrays() ([]int, []int) { 
    a := make([]int, 3) 
    fmt.Println("Please enter the first 3 digits separated by space or comma") 
    for i := range a { 
     fmt.Scanf("%d", &a[i]) 
    } 
    b := make([]int, 3) 
    fmt.Println("Please enter the second 3 digits separated by space or comma") 
    for i := range b { 
     fmt.Scanf("%d", &b[i]) 
    } 
    return a, b 
} 

Wenn ich diesen Code in meiner lokalen Umgebung ausgeführt, das fragt mich am Terminal die ersten 3 Ziffern einzugeben, dann fragt sein mich die anderen drei Ziffern einzufügen, dann der Code vergleicht sie und gibt die Punkte zu A und B, wie in der Herausforderung erforderlich.

Antwort

7

Ihre Ausgabe nicht die erwartete Ausgabe entsprechen:

Ihr Output (stdout)

Please enter the first 3 digits separated by space or comma 
Please enter the second 3 digits separated by space or comma 
A: 1, B: 1 

Erwartete Ausgabe

1 1 

Sie drucken Art und Weise mehr, als sie gefragt. Sie machen dieses Programm auch für einen Computer, um nicht eine Person laufen zu lassen. Sie müssen keine Texteingabeaufforderung haben.

Entfernen Sie den überschüssigen Druck:

package main 

import "fmt" 

func main() { 
    a, b := ReadArrays() 
    sa, sb := CompareIt(a, b) 
    fmt.Printf("%d %d", sa, sb) 
} 

func CompareIt(a, b []int) (int, int) { 
    var scoreA int 
    var scoreB int 

    for i := 0; i < 3; i++ { 
     if a[i] > b[i] { 
      scoreA += 1 
     } else if b[i] > a[i] { 
      scoreB += 1 
     } 
    } 
    return scoreA, scoreB 
} 

func ReadArrays() ([]int, []int) { 
    a := make([]int, 3) 
    for i := range a { 
     fmt.Scanf("%d", &a[i]) 
    } 
    b := make([]int, 3) 
    for i := range b { 
     fmt.Scanf("%d", &b[i]) 
    } 
    return a, b 
} 
+0

danken Ihnen so sehr! –