在一个文件中制作函数,将两个 3 乘以 3 矩阵,但它看到第一行正确然后错误
making function in one file that multiplys two 3 by 3 matrices but it sees out first line correct then its wrong
我在Visual Studio 2010 Microsoft中做了这个程序,就像另一个人一样,但是当它看到生成的产品矩阵时,矩阵的第一行是正确的,但矩阵中的其他两行是错误的
所以它看到了这个错误的矩阵
5.3 23.9 24
-9.25596e+061 56.3 60.2
416 497.1 2980.9
我的程序应该看到的正确答案/矩阵是
5.3 23.9 24
11.6 56.3 58.2
17.9 88.7 92.4
因为 im 乘以这个矩阵1
1 2 3
4 5 6
7 8 9
通过这个矩阵2
0 2 4
1 4.5 2.2
1.1 4.3 5.2
这是代码
//
//
//
//
//Purpose: program that multiplys two matrices
#include <iomanip>
#include <iostream>
using namespace std;
const int N = 3;
void multiplyMatrix(const double a[][N], const double b[][N], double c[][N]);
int main()
{
const double matrix1[][N] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}}; //matrix 1
const double matrix2[][N] = {{0, 2, 4},{1, 4.5, 2.2},{1.1, 4.3, 5.2}}; //matrix 2
double matrix[][N]= {0};
multiplyMatrix(matrix1, matrix2, matrix);
return 0;
}
void multiplyMatrix(const double a[][N], const double b[][N], double c[][N])
{
for ( int i = 0; i < 3 ; i++)
{
for ( int j = 0; j < 3; j++)
{
for ( int r = 0; r < 3; r++)
{
c[i][j] += (a[i][r] * b[r][j]);
}
cout << c[i][j] << setw(7);
}
cout << endl;
}
}
请帮忙
您实际上没有为结果分配任何内存。 编译器无法理解您声明时的结果是 3x3 矩阵:
double matrix[][N]= {0};
与这种情况不同:
const double matrix1[][N] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};
编译器将其"理解"为 3x3 矩阵。
将double matrix[][N]= {0};
更改为double matrix[N][N]= {0};
,您的问题将得到解决。
顺便说一下,您有一个分段错误/堆栈溢出,因为您只有 3 个双打的空间,但您使用了 9 个。
相关文章:
- 我编写了以下代码来读取C++矩阵,然后打印其行和列.我收到此错误
- VS2015中内置的程序的发布版本与Qt运行然后关闭没有错误?
- 当我输入一个字母时,cin 输入(输入是一个 int),而不是打印错误一次,它打印正确一次,然后在循环的其余部分打印 i
- 收集Visual Studio IntelliSense错误,然后通过脚本将其转储到文本文件中
- 在计算机级别,应用程序以二进制方式运行,然后当发生运行时错误时,它如何呈现回错误代码
- 在一个作用域中推送五个对象指针,然后检查对象的布尔值是否为 false,会给出错误
- QT创建者的运行应用程序会出现错误QXCBConnection,然后流产
- 创建一个 const unique_ptr然后尝试从它 std::move 会给出与您尝试访问复制构造函数相同的错误
- Flex Bison构造的编译器打印正确的结果,然后给出语法错误
- 字符指针指向字符串,然后指向字符串数组。"./a.out"中的错误:malloc():内存损坏:0x0900c3b0***
- Cython导入只工作一次,然后会出现gcc.bat错误
- 指针到指针的分配然后迭代会导致分段错误
- C++指针运行时错误 - 使用指针设置变量然后检索
- 在一个文件中制作函数,将两个 3 乘以 3 矩阵,但它看到第一行正确然后错误
- 当前尝试使用气泡排序对数组进行排序,然后获取平均值,但返回的平均值是错误的
- 程序正确执行,然后出现段错误
- 输出的第一部分是正确的,然后我得到了一个分段错误
- c++ CURL post文件然后得到响应错误
- 将不同类型的变量写入二进制文件,然后将其读入类变量,会得到错误的值
- SWIG错误:已声明'extern'然后'静态'