回 帖 发 新 帖 刷新版面

主题:请求帮助,很着急~~

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 楼

7、faj = m()    '函数的返回值是数组的时候,这样写对么?
到底哪个是变量,哪个是函数?

12 楼

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 楼

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 楼

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 楼

一,上面只是写的自定义函数部分的程序,主程序没往上写,所以这部分函数不是没有被调用~~
二,“在循环外引用循环变量,会导致不可知问题”这个我还真不知道,因为特殊需要。我才刚自学的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 楼

难怪大家看不懂你的程序,你为什么不发全呢?

我来回复

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