题目

某城市有一条横贯东西的大河,河有笔直的南北两岸,岸上有位置各不相同的N个城市。城市按照地理位置先后进行从小到大编号,两岸的部分城市结成--对一的友好城市,即南岸的每个城市有且仅有一个友好城市在北岸,且不同城市的友好城市不能相同。每对友好城市都向政府申请在河上开辟一条直线航道连接两个城市,政府决定避免任意两条航道交叉,以避免事故(如图16-1所示),请帮助政府做出一些批准和拒绝申请的决定,使得在保证任意两条航道不相交的情况下,被批准的申请尽量多。 小王设计VB程序如下,在标签.上显示南岸城市的位置序号,例如“1,2,3,4,5,"(两岸城市序号之间用逗号分隔),然后按照南岸城市的顺序在Text1中输入相应的北岸友好城市序号“3,2,4,1,5,”,其中南岸1号城市与北岸3号城市为友好城市,南岸2号城市与北岸2号城市为友好城市,以此类推,单击“分析”按钮,显示最多可批准的申请数量为3个(如图16-2所示),最终政府批准的3条航道为南岸城市2-北岸城市 2,南岸城市3-北岸城市 4,南岸城市5-北岸城市5。 (1) 南岸城市标签显示“1,2,3,4,5,6,7,”,文本框Text1中输人“3,1,2,5,6,4,7,",最多批准申请数是个。 (2) 请在划线处填入合适的代码。 Private Sub Command1_ Click()   Dim b(1 To 100) As Integer     'b(i)表示编号i南岸城市对应的北岸友好城市   Dim c(1 To 100) As Integer   Dim n1, lenc As Integer   Dim i, j As Integer   Dim s1 As String   Dim st, ch As String   Dim flag As Boolean   n1=0   s1 = Text1. Text   st =""   For i = 1 To Len(s1)     ch = Mid(s1, i, 1)     If ch = "," Then       n1 = n1+1              st =""     Else       st=st+ch     End If   Next i   c(1) = b(1)   lenc = 1   For i=2 To n1     If b(i) > c(lenc) Then       lenc=lenc+1       c(lenc) = b(i)     Else       j=lenc-1: flag=True       Do While j>= 1 And flag         If  Then           c(j+1)=b(i)           flag = Flase         End If         j=j-1       Loop       If j = 0 And flag Then                End If     End If   Next i   Label1. Caption = "最多批准申请数:" + Str(lenc) + "个" End Sub 答案: 【1】5 【1】b(n1) = Val(st)【2】b(i) > c(j)【3】c(1) = b(i)
信息技术 试题推荐
最近更新