作业帮 > 综合 > 作业

整数1至50构成集合M,从中任取25个数构成集合N,输入a,b,c,d,e,六个数,判断是否属于N,输出N

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/19 06:49:11
整数1至50构成集合M,从中任取25个数构成集合N,输入a,b,c,d,e,六个数,判断是否属于N,输出N
请顺便给出程序的解释,无胜感激!
抱歉,打漏了,判断六个数是否属于N,若否,输出N
很完美
Dim M(49) As Integer,N() As Integer
'判断某元素是否属于某数组
Function cf(B() As Integer,nn As Integer) As Boolean 'B()为数组,nn为元素
On Error Resume Next '防止空数组
For Each v In B
If v = nn Then cf = True:Exit For
Next v
End Function
Private Sub Command1_Click()
Dim m1 As Integer,n1 As Integer 'm1存放M()随机下标,n1存放N()上届
'初始化数组a(),1-50
For i = 0 To 49
M(i) = i + 1
Next i
'初始化集合N
Do
Randomize '随机
m1 = M(Int(50 * Rnd)) '生成M()随机下标
If cf(N(),m1) = flase Then '防止N()元素重复
ReDim Preserve N(n1) '重置数组长度
N(n1) = m1 '新元素赋值
n1 = n1 + 1 '数组上届变量加1
End If '结束判断
Loop While UBound(N) < 24 '循环语句块结束
'输入六个数字
Dim k As Integer '存放输入数字
For j = 1 To 6
k = Val(InputBox("请输入6个数字,第" & j & "个数字"))
If cf(N(),k) = False Then '不属于
'输出集合N()
For Each v In N
Print v & ",";
Next v
Print '换行
MsgBox (k & "不属于集合N()")
Else '属于
MsgBox (k & "属于集合N()")
End If
Next j
End Sub
由于你的要求有点歧义,这里假定是判断6个数字中每个数字是否属于集合N,而不是判断是否全部属于,当然,这都是次要的,主要部分的代码已给出,可以自己改.
注:任取25个数还有一种方法是先给M随机排序,再顺序输出25元素,皆可