回 帖 发 新 帖 刷新版面

主题:很难得一道题,谁会。

楼主


 利用随机函数产生80个10至99之间的随机整数,将产生的80哥整数存入数组,按每行10个数输出到窗体或者文本框里,将其中的奇数按由大到小的顺序排列并输出到另一个文本框里,在产生的80个随机整数中,用Sub子过程或者Function函数过程判断随机整数是否为素数。并将素数按每行10个数在窗体或者文本框里输出。

回复列表 (共3个回复)

沙发

正如你的名字一样,这就是一个循环结构。
能说说你都做了些什么?总不会一句都不会写、一点思路都没得吧?

板凳


我已经解出来了,你看看我编写的程序,看对着么。
原题是这样的。你看看,还有什么别的解法吗?
   利用随机函数产生80个10~90之间的随机整数,将其中的偶数按由小到大的顺序排列并输出,将其中的奇数按由大到小的顺序排列并输出,在产生的80个随机整数中,找出其中的素数,并将这些素数求合。实验要求:将随机产生的80个整数存入数组,按每行10个数输出到窗体或文本框;偶数和奇数也存入数组,将排好序的偶数和奇数分别输出到窗体或文本框中;用Sub子过程或function函数过程判断随机整数是否为素数;将素数按每行10个数在窗体或文本框输出;将素数的个数及求合结果输出到窗体或文本框中。

Dim a(1 To 80) As Integer
Dim js() As Integer
Dim os() As Integer


Private Sub Command1_Click()
Dim i, j, k
Randomize
j = 0
Text1.Text = ""
For i = 1 To 80
  a(i) = Int(Rnd * 90) + 10
  Text1.Text = Text1.Text & a(i) & "  "
  If i Mod 10 = 0 Then Text1.Text = Text1.Text & vbCrLf
  If a(i) Mod 2 = 1 Then
    ReDim Preserve js(j)
    js(j) = a(i)
    j = j + 1
  Else
    ReDim Preserve os(k)
    os(k) = a(i)
    k = k + 1
  End If
Next
End Sub

Private Function prime(ByVal n As Long) As Boolean  '返回值=True是素数,False不是素数
Dim k As Long
If n < 2 Then
  prime = False
Else
prime = True
For k = 2 To n - 1
  If (n Mod k) = 0 Then prime = False: Exit For
Next k
End If
End Function

Private Sub Command2_Click()
Dim i, j
For i = 0 To UBound(js)
  For j = 0 To i
    If js(i) < js(j) Then t = js(i): js(i) = js(j): js(j) = t
  Next
Next
Text2.Text = ""
For i = 0 To UBound(js)
  Text2.Text = Text2.Text & js(i) & "  "
  If (i + 1) Mod 5 = 0 Then Text2.Text = Text2.Text & vbCrLf
Next

End Sub

Private Sub Command3_Click()
Dim i, j As Integer
For i = 0 To UBound(os)
  For j = 0 To i
    If os(i) > os(j) Then t = os(i): os(i) = os(j): os(j) = t
  Next
Next
Text3.Text = ""
For i = 0 To UBound(os)
  Text3.Text = Text3.Text & os(i) & "  "
  If (i + 1) Mod 5 = 0 Then Text3.Text = Text3.Text & vbCrLf
Next
End Sub

Private Sub Command4_Click()
Dim i, j, sum As Integer
Text4.Text = ""
j = 0
For i = 0 To UBound(js)
  If prime(js(i)) Then
    Text4.Text = Text4.Text & js(i) & "  "
    j = j + 1
    sum = sum + js(i)
    If j Mod 5 = 0 Then Text4.Text = Text4.Text & vbCrLf
  End If
Next
Text5.Text = j
Text6.Text = sum
End Sub

Private Sub Command5_Click()
Unload Me
End Sub

3 楼

对还是不对,这个问题只要你运行一下代码,就知道了。我在这里不评论了。
实践证明,很多看似“很难”的问题,只要努力,都是可以解决的。
恭喜你进步。

我来回复

您尚未登录,请登录后再回复。点此登录或注册