Dim a(12) As Integer
Dim s As Integer
Private Sub Command1_Click()
For i = 1 To 10
a(i) = Int(Rnd * 100 + 1)
Print a(i);
Next
Print
s = Int(Rnd * 100 + 1)
Print s;
Print
End SubPrivate Sub Command2_Click()
For i = 1 To 9
 For j = i + 1 To 10
  If a(i) > a(j) Then
   c = a(i)
   a(i) = a(j)
   a(j) = c
  End If
 Next
Next
For i = 1 To 10
 If s > a(i) And s < a(i + 1) Then
 End If
Next
For i = 1 To 11
Print a(i);
Next
End Sub

解决方案 »

  1.   

    既然你要求在已有代码基础上改,那我就不说别的了。
    看看这个吧:
    Option ExplicitDim a(12) As Integer
    Dim s     As IntegerPrivate Sub Command1_Click()
       Dim i&
       For i = 1 To 10
          a(i) = Int(Rnd * 100 + 1)
          Print a(i);
       Next
       Print
       s = Int(Rnd * 100 + 1)
       Print s;
       Print
    End SubPrivate Sub Command2_Click()
       Dim i&, j&, c%
       For i = 1 To 9
          For j = i + 1 To 10
             If a(i) > a(j) Then
                c = a(i)
                a(i) = a(j)
                a(j) = c
             End If
          Next
       Next
       For i = 1 To 10
          'If s > a(i) And s < a(i + 1) Then
          If (s < a(i)) Then   '因为你是从小到大排序的
             For j = 11 To i + 1 Step -1
                a(j) = a(j - 1)
             Next
             a(i) = s
             Exit For
          End If
       Next
       For i = 1 To 11
          Print a(i);
       Next
    End Sub
      

  2.   

    我知道了 谢谢 之前是因为我做的步长-1 循环那里做的是11 to i 所以试了很多遍 都没有找出来 感谢各位大神指教。。