0

我正在 Visual Studio Express 2012 中完成一项任务,挑战要求我创建一个应用程序,允许用户输入三个跑步者的姓名和完成时间。我正在为第一名、第二名和第三名获奖者制作 If...Then...Else 部分的流程图。任何人都可以帮助我或引导我朝着正确的方向创建条件语句部分吗?

这是我所拥有的:

If intRunner1 < intRunner2 And intRunner1 < intRunner3 Then
    lblDisplay.Text = "First Place"
End If
If intRunner2 < intRunner1 And intRunner2 < intRunner3 Then
    lblDisplay.Text = "First Place"
End If
If intRunner3 < intRunner1 And intRunner3 < intRunner2 Then
   lblDisplay.Text = "First Place"

我也有这个:

If intFinish1 < intFinish2 Then
    If intFinish1 < intFinish3 Then
        lblFirstPlace.Text = "Runner 1 finished in first place."
    Else
        lblSecondPlace.Text = "Runner 1 finished in second place."
Else
    If intFinish1 < intFinish3 Then
        lblFirstPlace.Text = "Runner 1 finished in second place."
    Else
        lblThirdPlace.Text = "Runner 1 finished in thirdplace"
    End If
End If 
4

1 回答 1

0
  1. 如果同时输入所有数据:

您应该使二维数组的大小等于跑步者的数量。在第一个维度中插入跑步者的姓名,在第二个维度中插入跑步者的时间。然后在第二维上对这个数组进行排序以获得获胜者。由于范围非常小且仅用于演示,您可以只使用 if then else 条件来检查排序。

  1. 如果您一次输入一个跑步者

只需以正确的顺序将跑步者插入 2d 数组中,并在插入所有数据后将数组输出以获取获胜者列表。

例如第二种方法的伪代码:

create 2d array A
repeat for each runner
  input runner name
  input runner time
     if A has runners
      check runner against each runner in A
            insert runner at the correct position
     else
       insert runner in A
end repeat
  1. 如果您只使用变量而不是数组:让我们假设您有跑步者 AB 和 C 这些是可能的场景:ABC、ACB、BAC、BCA、CAB、CBA 您必须检查每一个。
    拿一个
       如果 A 击败 B(那么他肯定是第二或第一)
         如果 A 击败 C(那么他肯定是第一个)
           A是第一个
           如果 B 击败 C
              B是第二,C是第三
           别的
              C是第二,B是第三
         别的
           A是第二个
           如果 B 击败 C
              B是第一,C是第三
           别的
              C是第一,B是第三
       否则...如果 A 击败 C.... 以此类推

对此进行投影以检查每种可能的情况。

于 2013-06-29T07:13:12.417 回答