主题:请求帮助,很着急~~
qcfy1111
[专家分:0] 发布于 2008-05-20 15:44:00
Public Function cs(t() As Integer)
Dim k%(2)
For i = 0 To 2
k(i) = 0
For j = 0 To 2
k(i) = k(i) + t(i, j)
Next j
O(i) = k(i)
Next i
cs = O(i)
End Function
Function fgi(t() As Integer)
Dim n#(2), O#(2)
For i = 0 To 2
For j = 0 To 2
n(i) = cs(t%()) / gho(i)
为什么说这个语句下表越界~~运行后调试,鼠标靠近i,显示i=3是怎么回事?完全不明白啊
next j
Next i
fgi = n()
End Function
我是新手着急要用这个程序,请大家多帮忙拉,谢谢~~
回复列表 (共16个回复)
11 楼
老大徒伤悲 [专家分:29120] 发布于 2008-05-23 12:26:00
7、faj = m() '函数的返回值是数组的时候,这样写对么?
到底哪个是变量,哪个是函数?
12 楼
老大徒伤悲 [专家分:29120] 发布于 2008-05-23 12:30:00
8、
Public Function cs(t() As Integer) 用“公共”的有什么好处?“私有的”就不行吗?
Dim k%(2), Oi%(2)
For i = 0 To 2
k(i) = 0
For j = 0 To 2
k(i) = k(i) + t(i, j)
Next j
Oi(i) = k(i)
Next i
cs = Oi(i) 就算不越界,你有能如何?一共有三行,,cs到底要存储那一移行的和?
End Function
13 楼
老大徒伤悲 [专家分:29120] 发布于 2008-05-23 12:36:00
9、
Public Function xy(t() As Integer) 一样!
Dim l%(2), Aj%(2)
For j = 0 To 2
l(j) = 0
For i = 0 To 2
l(j) = l(j) + t(i, j)
Next i
Aj(j) = l(j) aj和l有什么分别?
Next j
xy = Aj(j) 一样要越界!一样没有用。
End Function
14 楼
老大徒伤悲 [专家分:29120] 发布于 2008-05-23 12:49:00
10、
你把i,j都声明成了全局变量,
For j = 0 To 2
m(j) = xy(t%()) / gha(j)
Next j
调用XY函数
For j = 0 To 2
l(j) = 0
For i = 0 To 2
l(j) = l(j) + t(i, j)
Next i
Aj(j) = l(j)
xy = Aj(j)
Next j
返回的时候,j=3了!所以gha(j)越界!
15 楼
qcfy1111 [专家分:0] 发布于 2008-05-24 20:59:00
一,上面只是写的自定义函数部分的程序,主程序没往上写,所以这部分函数不是没有被调用~~
二,“在循环外引用循环变量,会导致不可知问题”这个我还真不知道,因为特殊需要。我才刚自学的VB,所以还要大家多帮助啊~
三,cs xy函数返回的(或者是你说的 存储)都是三个数,各行的和和各列的和,都是数组啊~~
四,[color=000000][color=000000]你把i,j都声明成了全局变量,
For j = 0 To 2
m(j) = xy(t%()) / gha(j)
Next j
调用XY函数
For j = 0 To 2
l(j) = 0
For i = 0 To 2
l(j) = l(j) + t(i, j)
Next i
Aj(j) = l(j)
xy = Aj(j)
Next j
返回的时候,j=3了!所以gha(j)越界![/color][/color]
我还不是很明白啊,你能告诉我该怎么改才正确么?
我已经没有办法了,再谢谢~~
16 楼
老大徒伤悲 [专家分:29120] 发布于 2008-05-25 10:13:00
难怪大家看不懂你的程序,你为什么不发全呢?
我来回复