注册 登录
编程论坛 VB.NET论坛

两个4X4矩阵相乘,得到另一个矩阵,并将其输出,我这错了,可是不会改

我也借鉴 发布于 2011-06-07 16:32, 1053 次点击
Private Sub Form_Click()
Dim a(4, 4) As Integer, b(4, 4) As Integer, c(4, 4) As Integer, i%, j%
Print "A矩阵为"
For i = 1 To 4
  For j = 1 To 4
   a(i, j) = Int(Rnd * 30) + 10
    b(i, j) = Int(Rnd * 30) + 10
   Print a(i, j);
   Next j
   Print
   Next i
   Print
   
   
  Print "B矩阵为"
  For i = 1 To 4
  For j = 1 To 4
 
    b(i, j) = Int(Rnd * 30) + 10
   Print b(i, j);
   Next j
   Print
   Next i
   Print
   
   
   Print "C矩阵为"
For i = 1 To 4
  For j = 1 To 4
  c(i, j) = c(i, j) + a(i, j) * b(j, i)
  Print c(i, j);
  Next j
  Print
  Next i
End Sub


5 回复
#2
wube2011-06-07 19:52
上面的结果长这样~.NET不熟矩阵忘了~​​帮不了你~

只有本站会员才能查看附件,请 登录
#3
qq10235692232011-06-07 20:00
程序代码:
  For i = 1 To 4
  For j = 1 To 4
  For k=1 To 4 '相乘的时候错了
  c(i, j) = c(i, j) + a(i, k) * b(k, j)
  Print c(i, j);
  Next k
  Next j
  Print
  Next i
  End Sub

#4
sywzs2011-06-09 04:52
把 1 To 4 改成 0 to 3 试试。
#5
dragen1112011-06-09 12:43
Private Sub Form_Click()
Dim a(4, 4) As Integer, b(4, 4) As Integer, c(4, 4) As Integer, i%, j%
Print "A矩阵为"
For i = 1 To 4
  For j = 1 To 4
   a(i, j) = Int(Rnd * 30) + 10
   
   Print a(i, j);
   Next j
   Print
   Next i
   Print
   
   
  Print "B矩阵为"
  For i = 1 To 4
  For j = 1 To 4

    b(i, j) = Int(Rnd * 30) + 10
   Print b(i, j);
   Next j
   Print
   Next i
   Print
   
   
   Print "C矩阵为"
For i = 1 To 4
  For j = 1 To 4
  c(i, j) = a(i, j) * b(i, j)
  Print c(i, j);
  Next j
  Print
  Next i
End Sub
#6
lianjiecuowu2011-06-12 09:26
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
    int i,j,t;
    const int M=2;
    const int N=3;
    const int K=4;
    int m[M][K];
    int n[K][N];
    int k[M][N]={0};
    srand(time(NULL));
    for(i=0;i<M;i++)
    {
        for(t=0;t<K;t++)
            m[i][t]=rand()%100;
    }
    cout<<"请输出数组m的元素:"<<endl;
    for(i=0;i<M;i++)
    {
        for(t=0;t<K;t++)
            cout<<m[i][t]<<"\t";
        cout<<endl;
    }
    for(t=0;t<K;t++)
    {
        for(j=0;j<N;j++)
            n[t][j]=rand()%100;
    }
    cout<<"输出数组n的元素:"<<endl;
    for(t=0;t<K;t++)
    {
        for(j=0;j<N;j++)
            cout<<n[t][j]<<"\t";
        cout<<endl;
    }
   

   
    for(i=0;i<M;i++)
        for(j=0;j<N;j++)
            for(t=0;t<K;t++)
                k[i][j]=k[i][j]+m[i][t]*n[t][j];
            cout<<"输出乘积后k数组的元素:"<<endl;
            for(i=0;i<M;i++)
            {
                for(j=0;j<N;j++)
                    cout<<k[i][j]<<"\t";
                cout<<endl;
            }
    system("pause");
    return 0;
   
}
1