伊莉討論區

標題: 請問哪裡有錯誤? [打印本頁]

作者: 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
作者: 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

提示: 作者被禁止或刪除 內容自動屏蔽




歡迎光臨 伊莉討論區 (http://s03.p03.eyny.com/) Powered by Discuz!