永发信息网

vb矩阵求逆提示类型不匹配:缺少数组和用户定义类型

答案:2  悬赏:10  手机版
解决时间 2021-03-12 22:09
Private Sub Command1_Click(index As Integer)
Dim a() As Integer, b() As Integer, i As Integer, j As Integer, s() As String, ss() As String
Select Case index
Case 0
ReDim a(4, 7) As Integer
For i = 1 To 4
For j = 1 To 7
a(i, j) = Val(InputBox("请输入a(" & i & "," & j & "):"))
Next j
Next i
Text1.Text = ""
For i = 1 To 4
For j = 1 To 7
Text1 = Text1 & a(i, j)
Next j
Text1 = Text1 & vbCrLf
Next i
Case 1
s = Split(Text1.Text, Chr(13) & Chr(10))
For i = 1 To 4
ss = Split(s(i))
For j = 1 To 7
a(i, j) = Val(ss(j))
Next j
Next i
Call jzqn(a(), b())
For i = 1 To 4
For j = 1 To 7
Text2 = Text2 & b(i, j)
Next j
Text2 = Text2 & vbCrLf
Next i
End Select
End Sub
Public Sub jzqn(qa(), na())
Dim a() As Integer
ReDim na(n, n) As Integer
ReDim a(n, 2 * n) As Integer
For i = 1 To n
For j = 1 To n
a(i, j) = qa(i, j)
Next j
Next i
For i = 1 To n
For j = n + 1 To 2 * n
If j - i = n Then
a(i, j) = 1
Else
a(i, j) = 0
End If
Next j
Next i
For i = 1 To n
If a(i, i) = 0 Then
For q = i To n
If a(q, i) <> 0 Then
For w = i To 2 * n
zj = a(i, w)
a(i, w) = a(q, w)
a(q, w) = zj
Next w
Exit For
End If
Next q
If q > n Then MsgBox "此矩阵不可逆": Exit Sub
End If
For k = 2 * n To i Step -1
a(i, k) = a(i, k) / a(i, i)
Next k
For j = i + 1 To n
If a(j, i) <> 0 Then
For k = 2 * n To i Step -1
a(j, k) = a(j, k) / a(j, i) - a(i, k)
Next k
End If
Next j
Next i
For i = n To 1 Step -1
If a(i, i) = 0 Then
For q = i - 1 To 1 Step -1
If a(q, i) <> 0 Then
For w = i To 2 * n
zj = a(i, w)
a(i, w) = a(q, w)
a(q, w) = zj
Next w
Exit For
End If
Next q
End If
For k = 2 * n To i Step -1
a(i, k) = a(i, k) / a(i, i)
Next k
For j = i - 1 To 1 Step -1
If a(j, i) <> 0 Then
xxx = a(j, i)
For k = 2 * n To 1 Step -1
a(j, k) = a(j, k) / xxx - a(i, k)
Next k
End If
Next j
Next i
For i = 1 To n
For j = 1 To n
na(i, j) = a(i, j + n)
Next j
Next i
End Sub
那里有错?本人新手。求大神指点。。。
最佳答案
用Split函数分割而成的数组,其下标是固定从0起算的,所以ss = Split(s(i))要改为ss = Split(s(i-1)),同样a(i, j) = Val(ss(j))要改为a(i, j) = Val(ss(j-1))

其次,Text1 = Text1 & a(i, j)这里数字之间要加个空格,否则无法用Split分割,即改为Text1 = Text1 & a(i, j) & " "

其他问题还有没有就不知道了,代码太长,无法测试。
全部回答
Public Sub jzqn(qa() As Integer, na() As Integer) 再看看别人怎么说的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
开机就提示 ATI catalyst control centre: co
虹桥火车站出发层下客后停多长时间属于违停
一支护林军是什么意思
他爸姓徐,他妈姓江,他叫啥名好呀?
【chenkun】...requiteinteresting.Butmygood
鑫源东北大馅饺子王地址有知道的么?有点事想
多多奶茶怎么去啊,有知道地址的么
单糖、双糖、多糖都包括那些糖,存在哪些食物
夜店经营范围包括什么?_?
有辆车做什么生意赚钱
学车,你们倒库移位学了多长时间
烟台那边有性价比较高的酒店或旅馆吗?
新兴区环卫局这个地址在什么地方,我要处理点
如何去除文档中的横线
求开场舞的歌曲,好听的
推荐资讯
为什么脚指头会麻木疼痛谢谢了,大神帮忙啊
天意鲜花地址在哪,我要去那里办事
关于赞美法官的文章、分多
我23岁,JJ17公分还能长吗?用什么办法能长大点
颠龙倒凤是甚么意思
热水管道打压可以按照给水管的压力打压吗
现在社会真的一切向钱看了吗?
永年太极武校收费标准介绍。
老版西游记里的孙悟空除了六小龄童还有一个是
秦家大院中餐在哪里啊,我有事要去这个地方
阉伶歌曲
平湖桌球室在哪里啊,我有事要去这个地方
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?