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;
}