C++中两个矩阵的相乘 我试图在C++中增加两个矩阵,但结果不正确!你能告诉我我的密码出了什么问题吗 #include<iostream> #include <stdio.h> #include <stdlib.h> #include <omp.h> //more detail using namespace std; #define WIDTH1 3 #define HEIGHT1 3 #define WIDTH2 3 #define HEIGHT2 3 #define WIDTH3 3 #define HEIGHT3 3 int A[HEIGHT1][WIDTH1]; int B[HEIGHT2][WIDTH2]; int C[HEIGHT3][WIDTH3]; int n, m; int y = 0; //more detail :) int main() { for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) { cin >> m; A[i][j] = m; } for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) { cin >> n; B[i][j] = n; } //more detail :) for (int i = 0; i < 3; i++) { int k = 0; int sum = 0; int sum2 = 0; int sum3 = 0; for (int j = 0; j < 3; j++) { int sum = A[i][j] * B[j][i]; sum += sum; } B[i][y] = sum; y = y + 1; for (int j = 0; j < 3; j++) { int sum2 = A[i][j] * B[j][i]; sum2 += sum2; } B[i][y] = sum2; y = y + 1; //more detail :) for (int j = 0; j < 3; j++) { int sum3 = A[i][j] * B[j][i]; sum3 += sum3; } B[i][y] = sum3; y = y + 1; } for (int i = 0; i < 3; i++) for (int j = 0; j < 1; j++) { cout << B[i][j] <<"\t" << B[i][j+1] << "\t" << B[i][j+2] << "\n" ; } return 0; //more detail :) }

C++中两个矩阵的相乘 我试图在C++中增加两个矩阵,但结果不正确!你能告诉我我的密码出了什么问题吗 #include<iostream> #include <stdio.h> #include <stdlib.h> #include <omp.h> //more detail using namespace std; #define WIDTH1 3 #define HEIGHT1 3 #define WIDTH2 3 #define HEIGHT2 3 #define WIDTH3 3 #define HEIGHT3 3 int A[HEIGHT1][WIDTH1]; int B[HEIGHT2][WIDTH2]; int C[HEIGHT3][WIDTH3]; int n, m; int y = 0; //more detail :) int main() { for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) { cin >> m; A[i][j] = m; } for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) { cin >> n; B[i][j] = n; } //more detail :) for (int i = 0; i < 3; i++) { int k = 0; int sum = 0; int sum2 = 0; int sum3 = 0; for (int j = 0; j < 3; j++) { int sum = A[i][j] * B[j][i]; sum += sum; } B[i][y] = sum; y = y + 1; for (int j = 0; j < 3; j++) { int sum2 = A[i][j] * B[j][i]; sum2 += sum2; } B[i][y] = sum2; y = y + 1; //more detail :) for (int j = 0; j < 3; j++) { int sum3 = A[i][j] * B[j][i]; sum3 += sum3; } B[i][y] = sum3; y = y + 1; } for (int i = 0; i < 3; i++) for (int j = 0; j < 1; j++) { cout << B[i][j] <<"\t" << B[i][j+1] << "\t" << B[i][j+2] << "\n" ; } return 0; //more detail :) },c++,matrix-multiplication,C++,Matrix Multiplication,你认为这有什么作用: for (int j = 0; j < 3; j++) { int sum = A[i][j] * B[j][i]; sum += sum; } 谢谢你,我刚换了,现在很明显可以用了 它是基础,试图记住基本的东西,我知道,并开始学习C++的!! 这是密码 由于更多细节而被否决:垃圾邮件。如果系统通知您添加更多细节到您的问题,请考虑这样做。例如:您声明但结果不正确!,但是不要提供使用的输入、预期的和实际的输出。

你认为这有什么作用:

    for (int j = 0; j < 3; j++)
    {
        int sum = A[i][j] * B[j][i];
        sum += sum; 
    }

谢谢你,我刚换了,现在很明显可以用了 它是基础,试图记住基本的东西,我知道,并开始学习C++的!! 这是密码


由于更多细节而被否决:垃圾邮件。如果系统通知您添加更多细节到您的问题,请考虑这样做。例如:您声明但结果不正确!,但是不要提供使用的输入、预期的和实际的输出。我建议学习使用gdb调试器,逐行检查记录的数字。我相信你很快就会破解它!不要用垃圾来回避添加实际问题的细节。嗯,除了可变阴影之外,似乎还有其他一些问题。嗯,这个算法是错误的。说一些明显的事情不会增加答案,而且可能会对你所称呼的人不尊重。这个问题的存在表明,这个问题显然不够明显,暗示它本应如此,这让人感觉像是对提出问题的人的批评。
    for (int j = 0; j < 3; j++)
    {
        sum += A[i][j] * B[j][i];
    }
#include<iostream>
#include <stdio.h>
#include <stdlib.h>
#include <omp.h>

using namespace std;
#define WIDTH1 3
#define HEIGHT1 3
#define WIDTH2 3
#define HEIGHT2 3
#define WIDTH3 3
#define HEIGHT3 3
int A[HEIGHT1][WIDTH1];
int B[HEIGHT2][WIDTH2];
int C[HEIGHT3][WIDTH3];
int n, m, sum;
int y = 0;
int main() {
    for (int i = 0; i < 3; i++)
        for (int j = 0; j < 3; j++)
        {
            cin >> m;
            A[i][j] = m;
        }
    for (int i = 0; i < 3; i++)
        for (int j = 0; j < 3; j++)
        {
            cin >> n;
            B[i][j] = n;
        }
    for (int c = 0; c < 3; c++) {
        for (int d = 0; d < 3; d++) {
            for (int k = 0; k < 3; k++) {
                sum = sum + A[c][k] * B[k][d];
            }

            C[c][d] = sum;
            sum = 0;
        }
    }
    for (int i = 0; i < 3; i++)
        for (int j = 0; j < 1; j++)
        {
            cout << C[i][j] <<"\t" << C[i][j+1] << "\t" << C[i][j+2] << "\n" ;
        }
    return 0;
}