永发信息网

这代码错了吗

答案:5  悬赏:20  手机版
解决时间 2021-04-28 05:51
  • 提问者网友:疯子也有疯子的情调
  • 2021-04-27 07:33

Private Sub Command1_Click()
Print: Print: Print
Dim a(0 To 9) As Integer
For i = 0 To 9
Randomize
a(i) = Int(Rnd * (99 - 10 + 1) - 10)
Print Tab(5 * i); a(i);
Next i
End Sub

Private Sub Command2_Click()
Print: Print
Dim a(0 To 9) As Integer, imin%, i%, j%, t%
For i = 0 To 8
imin = i
For j = i + 1 To 9
If a(j) < a(imin) Then imin = j
Next j
t = a(i)
a(i) = a(imin)
a(imin) = t
Next i
For i = 0 To 9
Print a(i);
Next i
End Sub

每次都是0 0 0 0 0 0

最佳答案
  • 五星知识达人网友:街头电车
  • 2021-04-27 08:21

Dim a(0 To 9) As Integer'通用区定义全局变量

Private Sub Command1_Click()
Print: Print: Print
For i = 0 To 9
Randomize
a(i) = Int(Rnd * (99 - 10 + 1) - 10)
Print Tab(5 * i); a(i);
Next i
End Sub

Private Sub Command2_Click()
Print: Print
Dim imin%, i%, j%, t%
For i = 0 To 8
imin = i
For j = i + 1 To 9
If a(j) < a(imin) Then imin = j
Next j
t = a(i)
a(i) = a(imin)
a(imin) = t
Next i
For i = 0 To 9
Print a(i);
Next i
End Sub
全部回答
  • 1楼网友:猎心人
  • 2021-04-27 12:19
没什么大的错误,就是想得太复杂化了,你基础不太牢固,把基础学好点就不会出现上面说的那些错误了
  • 2楼网友:像个废品
  • 2021-04-27 11:04
大哥就个产生随机数然后排序用得着那么多代码吗?给你个思路 产生指定个数的随机数 然后输出随机数 然后再用冒泡方法输出随机数就解决了!(降序排列也可也) 另外希望把代码加上注释也方便自己去检查!还有一段是一段的分开,方便区分代码段的功能,现在推行代码重用!
  • 3楼网友:西岸风
  • 2021-04-27 10:30
赋初值
  • 4楼网友:污到你湿
  • 2021-04-27 09:09

注意变量定义的作用域问题。 你定义A()是在过程中的当超出了这个过程。 变量中数据就没有了。 例如command1_click过程中赋的初值在Command2_click过程中是不能使用的。

解决方法就是定义模块级别的变量。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯