Private Sub Command1_Click( ) Dim x,y As Integer Dim n As Integer Dim s As String x=Val(Text1.Text):y=Val(Text2.Text) n=Val(Text3.Text) s=s+Str(x\y) s=s+“。“ k=x Mod y For i=1To n
第一步:統(tǒng)計(jì)數(shù)組 a 中每個(gè)值 a(i)出現(xiàn)的次數(shù),存入 b(a(i)),統(tǒng)計(jì)完成后數(shù)組 b 的情況如下:
下標(biāo)
1
2
3
4
5
值
0
1
2
1
1
第二步:從前向后,依次使數(shù)組 b 中的每個(gè)值等于其與前一項(xiàng)之和,這樣數(shù)組 b(a(i))就代表 了數(shù)組 a 中小于或等于 a(i)的元素個(gè)數(shù),完成第二步后數(shù)組 b 如下:
下標(biāo)
1
2
3
4
5
值
0
1
3
4
5
第三步:從后往前,依次將數(shù)組 a 中元素填入數(shù)組 c 中,將數(shù)組元素 a(i)放在數(shù)組 c 的第 b(a(i))項(xiàng),如元素 a(1)=5,應(yīng)該放在數(shù)組 c 的 b(5)位(即 c(5))。每放一個(gè)元素就將 b(a(i))遞減;完成第三步后,數(shù)組 c 如下所示,已經(jīng)完成升序排序,且相對(duì)位置不變,即原來(lái) a ( 2)的值 3 仍然在 a(3)的值 3 前面。
( 2)請(qǐng)?jiān)跈M線處填上相應(yīng)代碼。 Dim a(1To 50)As Integer'存放學(xué)生的成績(jī) Dim sname(1To 50)As String'存放學(xué)生姓名 Dim n As Integer Private Sub Command1_Click( ) Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset conn.ConnectionString=“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=“+ App.Path+“\stu.jye.ai“ conn.Open strSQL=“SELECT*From stucj“ Set rs.ActiveConnection=conn rs.Open strSQL n=0 List1.AddItem“姓 名“&““&“成績(jī)“ Do While Not rs.EOF n=n+1 a(n)=rs.Fields(“cj“) sname(n)=rs.Fields(“xm“) List1.AddItem sname(n) &““& Str(a(n)) ①
Loop rs.Close conn.Close End Sub Private Sub Command2_Click( ?。?br />Dim i As Integer,k As Integer Dim b(0To 100)As Integer Dim c(1To 50)As Integer,c1(1To 50)As String'c 和 c1 作為臨時(shí)數(shù)組 For i=1To n b(a(i))=b(a(i))+1 Next For i=1To 100 b(i)=②
Next For i=n To 1Step-1 c(b(a(i)))=a(i) c1(b(a(i)))=sname(i) ③
Next For i=1To n'把臨時(shí)數(shù)組 c 和 c1 中的數(shù)據(jù)放入 a 和 sname 數(shù)組 a(i)=c(i) sname(i)=c1(i) Next List2.AddItem“姓 名“&““&“成績(jī)“ For i=1To n List2.AddItem sname(i) &““& Str(a(i)) Next End Sub