| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 446 人关注过本帖
标题:运行出错
只看楼主 加入收藏
onlylove0106
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2007-4-23
收藏
 问题点数:0 回复次数:3 
运行出错

数组a中存放m个随即产生的不大于n的正整数,编写过程删除数组中相同的元素,并显示删除前和删除后的数组中的所有内容以及被删除的数据个数。
如题,我编的程序是:
Dim m%, n%, i%, Num%, j%, Same%, d%
Print Chr(13) + Chr(13); " 随机生成的原数组为:"
Dim a()
m = Val(InputBox("请输入数组元素个数m:(输入-1结束)"))
If m = -1 Then Exit Sub
n = Val(InputBox("请输入正整数n的值(输入-1结束):"))
If n = -1 Then Exit Sub
For i = 1 To m
ReDim Preserve a(i)
a(i) = Int(Rnd * n)
Print a(i);: d = d + 1
If d Mod 10 = 0 Then Print a(i)

Next i
For i = 1 To m
For j = i + 1 To m
If a(i) = a(j) Then
Same = a(j)
a(i) = "" '删除a(i)
Num = Num + 1
a(j) = ""
Num = Num + 1
End If
Next j
Next i
Print Chr(13) + Chr(13); "其中相同的元素为:"; Same
Print Chr(13) + Chr(13); "删除的相同元素个数为:"; Num

当运行时输入,100和100是就不出错
而输入1000和1000时就说:Same = a(j)“类型不匹配”
这是为什么啊?

搜索更多相关主题的帖子: 运行 
2007-05-14 01:47
kx25
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2004-11-22
收藏
得分:0 

数组a中存放m个随即产生的不大于n的正整数,编写过程删除数组中相同的元素----搞这么复杂!

参考我的帖子:[经验]取20个在10到87之间中的随机整数(不包括10和87)
http://bbs.bc-cn.net/viewthread.php?tid=138065
要看完帖子哦!

产生的随机整数没重复的该多好啊


菜鸟在渐渐变老,终有一天会成为老鸟, 并为自由翱翔作最后的准备!
2007-05-14 03:25
kx25
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2004-11-22
收藏
得分:0 

a(i) = "" 'a(i)
Num = Num + 1
a(j) = ""


a(i) = ""
改为
a(i) = 0 '赋值为“0”的,进行筛选和计数。。。a(i)不是记录字符串的数组

常数数组的值必须为数字,不能设置为没有值,空格或者字符串

[此贴子已经被作者于2007-5-14 3:50:12编辑过]


菜鸟在渐渐变老,终有一天会成为老鸟, 并为自由翱翔作最后的准备!
2007-05-14 03:48
onlylove0106
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2007-4-23
收藏
得分:0 
谢谢美女!

2007-05-14 04:52
快速回复:运行出错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039484 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved