2012年8月19日 星期日

一元二次方程式




解一元二次方程式;輸入三個實數a、b、c,試解ax^2 + bx + c = 0 。
規則敘述:輸入三個實數;輸出 X 的值,若解不為虛根,則分別印出解,解和解之間以空格作為間隔。若為重根則只需要印出一個解即可,若為虛根則印出 “I can’t solve it !”。
輸出入說明
輸入:
–2,1,1
輸出:
-0.5
1

2 則留言:

  1. 輸入應該是1,-2,1吧?
    不然輸出應該是 -0.5 1
    Private Sub Form_Load()
    Me.Hide
    Dim a, b, c As Single
    Dim ans, ans1 As Integer
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Line Input #1, x
    x = Replace(x, ",", " ")
    y = Split(x, " ")
    a = Val(y(0))
    b = Val(y(1))
    c = Val(y(2))
    d = (b ^ 2 - ((4 * a) * c)) ^ 0.5
    If d > 0 Then
    ans = (-(b) + d) / (a * 2)
    ans1 = (-(b) - d) / (a * 2)
    Print #2, ans & " " & ans1
    ElseIf d = 0 Then
    ans = (-(b) + d) / (a * 2)
    Print #2, ans
    Else
    Print #2, "I can’t solve it !"
    End If
    Close
    Close
    End
    End Sub

    回覆刪除
    回覆
    1. 恩 我也有這個疑問

      不過問題是別人給我的

      那就以 -0.5 跟 1 為答案吧

      刪除