永发信息网

vb:输入m,n后再输入a数组的m个数和b数组的n个数,显示a、b中不同的数

答案:3  悬赏:70  手机版
解决时间 2021-03-26 10:46
  • 提问者网友:兔牙战士
  • 2021-03-25 13:27
vb:输入m,n后再输入a数组的m个数和b数组的n个数,显示a、b中不同的数
最佳答案
  • 五星知识达人网友:渡鹤影
  • 2021-03-25 13:39
libbo1974网友的做法是完全正确的,但没有指出程序中所有的错误,我来一个完整版吧。引用了libbo1974网友的程序,在此谢谢。还有为什么要用Byte这种数据类型呢,它只能表示0~255,改成了Integer类型。
Private Sub Form_Click()
Dim n As integer, m As Integer, am As Integer, bn As Integer, a() As Integer, b() As Integer
Dim isSame As Boolean
m = InputBox("a数组中元素个数")
n = InputBox("b数组中元素个数")
ReDim a(1 To m)
For am = 1 To m
a(am) = Val(InputBox("a(" & am & ")="))
Next
ReDim b(1 To n)
For bn = 1 To n
b(bn) = Val(InputBox("b(" & bn & ")="))
Next

For am = 1 To m
isSame = False
For bn = 1 To n
If a(am) - b(bn) = 0 Then isSame = True
Next
If isSame = False Then Print a(am)
Next

For bn = 1 To n
isSame = False
For am = 1 To m
If b(bn) - a(am) = 0 Then isSame = True
Next
If isSame = False Then Print b(bn)
Next
End Sub
全部回答
  • 1楼网友:往事埋风中
  • 2021-03-25 15:04
For am = 1 To m
For bn = 1 To n
If a(am) - b(bn) <> 0 Then Exit For
Next bn
Print a(am);
Next am
改为:
Dim isSame As Boolean
For am = 1 To m
isSame = False
For bn = 1 To n
If (a(am) - b(bn)) = 0 Then isSame = True
Next bn
if issame=False then Print a(am);
Next am
后面的一样改
  • 2楼网友:撞了怀
  • 2021-03-25 14:52
If a(am) - b(bn) <> 0 Then Exit For
这只判断了与b()中的一个是否不等,逻辑方面是错的,要判断跟所有的b()不相等,同时是否需要判断a()、b()自身是否有相同数?
下面是在a中与b中不同的数。
For am = 1 To m
For bn = 1 To n
If a(am) = b(bn) Then Exit For
Next bn
if bn>n then
Print a(am);
endif
Next am
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯