2015-12-02 43 views
-2
package main 

import (
    "fmt" 
    "bufio" 
    "os" 
    "strconv" 
    "math" 
) 

func main() { 
    var inpA = bufio.NewScanner(os.Stdin) 
    var inpB = bufio.NewScanner(os.Stdin) 
    var inpC = bufio.NewScanner(os.Stdin) 
    fmt.Print("input A value: ") 
    inpA.Scan() 
    fmt.Print("input B value: ") 
    inpB.Scan() 
    fmt.Print("input C value: ") 
    inpC.Scan() 
    cal(inpA.Text(),inpB.Text(),inpC.Text()) 
} 

func cal(INP1, INP2, INP3) string{ 
    b := INP2 
    a := INP1 
    c := INP3 
    e := 4 
    la := 2 
    a2 := float64(e)*float64(a) 
    b2 := float64(b*b) 
    ac := float64(e)*float64(a)*float64(c) 
    q := math.Sqrt(math.Abs(b2-ac)) 
    x := q/a2 
    Rx := x 
    fmt.Print("x = " + strconv.Itoa(Rx)) 
} 

我在做什麼錯?我只想將輸入傳遞給func cal。此外,我在印刷Rx時遇到問題。因爲它是一個浮動。那麼如何將x/RX更改爲非浮點型?如何通過golang中的變量

+6

你的函數參數沒有類型,但是這個代碼還有很多其他的問題。從[docs]開始(https://golang.org/doc/) – JimB

回答

0

@JimB已經指出func cal沒有參數類型。此外,它還有其他問題,如:CAL作爲字符串

  • 爲了使用A,B和C,轉換設置也值爲float64
  • 拉不使用
  • 的FUNC

    1. 設定的參數類型
    2. Rx需要轉換爲字符串
    3. func沒有返回任何東西。

    看這個更新的功能:

    func cal(INP1, INP2, INP3 string) string{ 
        b,_ := strconv.ParseFloat(INP2, 64) 
        a,_ := strconv.ParseFloat(INP1, 64) 
        c,_ := strconv.ParseFloat(INP3, 64) 
        e := 4 
        la := 2 
        a2 := float64(e)*float64(a) 
        b2 := float64(b*b) 
        ac := float64(e)*float64(a)*float64(c) 
        q := math.Sqrt(math.Abs(b2-ac)) 
        x := q/a2 
        Rx := x 
        fmt.Print("x = " + strconv.FormatFloat(Rx, 'f', 6, 64)) 
        fmt.Print(la) 
        return "return value" 
    } 
    

    現在我已經使用LA,通過打印。