查看完整版本: 請問哪裡有錯誤?
頁: [1]

kent75726 發表於 2014-11-19 09:25 PM

請問哪裡有錯誤?

我分別輸入1.2.3正確 但是輸入3.2.1 為什變1.3.2哪裡錯呢?請指正謝謝
Sub Main()
        Dim a, b, c, x As Integer
        Console.Write("請輸入第一個數字 :")
        a = Convert.ToInt32(Console.ReadLine())
        Console.Write("請輸入第二個數字 :")
        b = Convert.ToInt32(Console.ReadLine())
        Console.Write("請輸入第三個數字 :")
        c = Convert.ToInt32(Console.ReadLine())
        If a < b Then
            x = a
            a = b
            b = x
        End If
        If c < b Then
            x = b
            b = c
            c = x
        End If
        If b < a Then
            x = a
            a = b
            b = x
        End If
        Console.WriteLine("三個數字從大到小的順序為 {0}, {1}, {2}", a, b, c)
        Console.Read()
    End Sub

End Module

還有這題為什麼公約數都是1= ="奇怪了
Module Module1

    Sub Main()
        Dim a, b, gcd As Integer
        Console.Write("請輸入第一個數字:")
        a = Convert.ToInt32(Console.ReadLine())
        Console.Write("請輸入第二個數字:")
        b = Convert.ToInt32(Console.ReadLine())
        gcd = 1
        For i = 2 To a
            If (a Mod i) = 0 And (b Mod i) = 0 Then
                gcd = 1
            End If
        Next
        Console.WriteLine(" {0} 與 {1} 最大公約數為 {2} ", a, b, gcd)
        Console.Read()
    End Sub

End Module...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

snowyearkimo 發表於 2014-11-19 11:18 PM

1. 錯了2個地方:
    1. 第2個If應是 b < c
    2. 第3個If應是多餘
    按照你現在的code確實會成132

2. 等式寫錯
          If (a Mod i) = 0 And (b Mod i) = 0 Then
                 gcd = i
             End If

raja48364844 發表於 2014-12-5 08:58 PM

等式寫錯了、善用debug模式,加上監控式很容易就可以看出問題囉
頁: [1]