我是否正确完成了此子程序任务?

时间:2013-11-17 14:58:30

标签: vb.net visual-studio-2010 console-application

该计划

程序将接受来自用户的三个整数值并按升序排序。该计划还将提供重复该计划的机会。

说明

  • 创建一个名为sortnumber()的子过程,它接受3个整数参数。
  • 在main中创建输入/输出代码以读取3个整数值,以作为参数传递给sortnumber()
  • 在sortnumber()中创建代码,按升序对3个整数值进行排序,并将结果打印到控制台
  • 创建允许用户重复程序的代码

我的代码:

Module Module1

Sub Main()
    Dim num1, num2, num3 As Integer
    Console.WriteLine("This programme sorts any 3 numbers into ascending order")
    Console.WriteLine("Press enter to continue")
    Do Until Console.ReadLine = "e"
        Console.WriteLine("Enter your first number:")
        num1 = Console.ReadLine
        Console.WriteLine("Enter your second number:")
        num2 = Console.ReadLine
        Console.WriteLine("Enter your third number:")
        num3 = Console.ReadLine
        Console.WriteLine("Sorting into ascending order...")
        sortnumber(num1, num2, num3)
        Console.WriteLine("Press enter to repeat the programme or enter 'e' to exit")
    Loop

End Sub
Sub sortnumber(ByVal n1 As Integer, ByVal n2 As Integer, ByVal n3 As Integer)
    If n1 >= n2 And n2 >= n3 Then
        Console.WriteLine(n3)
        Console.WriteLine(n2)
        Console.WriteLine(n1)
    ElseIf n3 >= n2 And n2 >= n1 Then
        Console.WriteLine(n1)
        Console.WriteLine(n2)
        Console.WriteLine(n3)
    ElseIf n1 >= n3 And n3 >= n2 Then
        Console.WriteLine(n2)
        Console.WriteLine(n3)
        Console.WriteLine(n1)
    ElseIf n3 >= n1 And n1 >= n2 Then
        Console.WriteLine(n2)
        Console.WriteLine(n1)
        Console.WriteLine(n3)
    ElseIf n2 >= n3 And n3 >= n1 Then
        Console.WriteLine(n1)
        Console.WriteLine(n3)
        Console.WriteLine(n2)
    ElseIf n2 >= n1 And n1 >= n3 Then
        Console.WriteLine(n3)
        Console.WriteLine(n1)
        Console.WriteLine(n2) 
    End If
End Sub
End Module

感谢。

1 个答案:

答案 0 :(得分:0)

就像Plutonix所说的那样,实际上没有任何排序。但最初,是的,你已经以递增的方式显示了这三个数字的正确顺序。

我试图修改你的sortnumber函数,以便对它们进行排序,但是我在这里使用了list。

Sub sortnumber(ByVal n1 As Integer, ByVal n2 As Integer, ByVal n3 As Integer)
    Dim numbers As List(Of Integer) = New List(Of Integer)
    numbers.Add(n1)
    numbers.Add(n2)
    numbers.Add(n3)
    numbers.Sort()
    For Each num In numbers
        Console.WriteLine(num.ToString)
    Next
End Sub

通过使用内置的sort功能,可以更清晰地读取代码。

但如果它要求你使用条件(即if-else-if语句),那么我会说你所做的是正确的。

<强>更新

假设您将此作为练习,您可以尝试使用Bubble Sort