回 帖 发 新 帖 刷新版面

主题:请教一道数组题目

随机产生m(10<=m<=100)个[m,2*m-5]之间的随机数,找出重复的元素插入到数组b(b数组的初始状态中无任何元素,且要求最终b数组元素不能有重复)中,最后将b数组中的素数个数写入顺序文件"D.DAT"中.

回复列表 (共4个回复)

沙发

你要买彩票吗?
1. 根据m来定义两个数组
2. 先通过随机数获得第一个数组
3. 再通过重复检查传到第二个数组
4. 检查第二个数组中的质数
5. 写入文件

如果是作业,建议你循规蹈矩的把每一个要求都写好.
如果是应用,那么就要看清楚你的主要目的,中间几个步骤都可以合并.

板凳


谢谢moz,作好了,  
  只是不知道为什么? 用45版的qb编写的程序用记事本打开都是乱码!是什么原因呢?

3 楼

如果你说的是程序的话,
请在菜单 File - Save as ...
对话框里,有一个选项是 “Binary(二进制格式,快存快读)”
请选择另一个选项 “Text (文本格式什么什么的)”

4 楼

为了便于检查打印了三个数组, 只是没有写入文件,
CLS
PRINT "*****************原数组******************************"
m = INT(RND * 91 + 10)
DIM a(m), b(m)
 FOR i = 1 TO m
  a(i) = INT(RND * (m - 4) + m)
  PRINT a(i);
  NEXT i
  PRINT
  PRINT "****************符合条件的数**************"
k = 1
FOR i = 1 TO m - 1
 f = 0
  IF a(i) <> 0 THEN
    FOR j = i + 1 TO m
     IF a(i) = a(j) THEN a(j) = 0: f = 1
    NEXT j
  END IF
    IF f = 1 THEN b(k) = a(i): k = k + 1
 NEXT i
FOR i = 1 TO k - 1
PRINT b(i);
NEXT i
PRINT
PRINT "*****************素数**************************"
 FOR i = 1 TO k - 1
   f = 1
 FOR j = 2 TO SQR(b(i))
   IF b(i) MOD j = 0 THEN f = 0: EXIT FOR
  NEXT j
 IF f = 1 THEN PRINT b(i);
NEXT i
END




我来回复

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