yuangw1234 发表于 2006-5-16 22:19:00

数组内项数为什么不能增加

<P>本人有这样一个想法,写了以下程序,可是失败,简单的我都搞不定,希望有朋友可以帮忙修改,先谢过!</P>
<P>数组a(2)原有三个数 1、2、3,然后手动输入4个数,如果输入的数与a(2)中的任何一个数都不相等,那么这个数就增加到数组a中,如输入2、3、4、8,则数组a中的元素就成了1、2、3、4、8,如果与数组a中一个数相同则这个数将不增加到数组a中</P>
<P>Public Sub bz()<BR>Dim a(2) As Double, b(2) As Double, shu As Integer<BR>a(0) = 1: a(1) = 2: a(2) = 3<BR>For I = 0 To 3<BR>&nbsp;&nbsp; b(I) = InputBox("请输入数", "", "")<BR>&nbsp;&nbsp;&nbsp; If b(I) &lt;&gt; a() Then<BR>&nbsp;&nbsp;&nbsp; shu = UBound(a) + 1<BR>&nbsp;&nbsp;&nbsp; ReDim Preserve a(0 To shu)<BR>&nbsp;&nbsp;&nbsp; a(shu) = b(I)<BR>&nbsp;&nbsp; End If<BR>Next</P>
<P>End Sub<BR></P>

xinghesnak 发表于 2006-5-17 08:35:00

<P>If b(I) &lt;&gt; a() Then 这句话有问题,b(i)是一个Double,而a()是个数组</P>
<P>改成这样:</P>
<P>Sub main()<BR>Dim a() As Double, b(3) As Double, judge As Boolean<BR>ReDim a(2) As Double<BR>a(0) = 1: a(1) = 2: a(2) = 3<BR>For i = 0 To 3<BR>&nbsp;&nbsp;&nbsp; b(i) = InputBox("请输入数", "", "")<BR>&nbsp;&nbsp;&nbsp; judge = False<BR>&nbsp;&nbsp;&nbsp; For j = 0 To UBound(a) - 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If b(i) = a(j) Then judge = True<BR>&nbsp;&nbsp;&nbsp; Next<BR>&nbsp;&nbsp;&nbsp; If judge = False Then ReDim Preserve a(UBound(a) + 1): a(UBound(a)) = b(i)<BR>Next</P>
<P>End Sub</P>

yuangw1234 发表于 2006-5-17 21:50:00

<P>我分析过,有点出入,本人已改正,不过很感谢大师提拨</P>
<P>Sub main()<BR>Dim a() As Double, b(2) As Double, judge As Boolean<BR>ReDim a(2) As Double<BR>a(0) = 1: a(1) = 2: a(2) = 3<BR>For i = 0 To 2<BR>&nbsp;&nbsp;&nbsp; b(i) = InputBox("&Ccedil;&euml;&Ecirc;&auml;&Egrave;&euml;&Ecirc;&yacute;", "", "")<BR>&nbsp;&nbsp;&nbsp; judge = False<BR>&nbsp;&nbsp;&nbsp; For j = 0 To UBound(a)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If b(i) = a(j) Then judge = True<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If judge = True Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit For<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp; Next<BR>&nbsp;&nbsp;&nbsp; If judge = False Then<BR>&nbsp;&nbsp;&nbsp; ReDim Preserve a(UBound(a) + 1)<BR>&nbsp;&nbsp;&nbsp; a(UBound(a)) = b(i)&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp; End If<BR>Next<BR>&nbsp;&nbsp;&nbsp; MsgBox judge<BR>&nbsp;&nbsp;&nbsp; MsgBox UBound(a)<BR>&nbsp;&nbsp;&nbsp; MsgBox a(UBound(a))<BR>End Sub</P>
<P>&nbsp;</P>
页: [1]
查看完整版本: 数组内项数为什么不能增加