gpt4 book ai didi

C++矩阵计算

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:01:39 25 4
gpt4 key购买 nike

我创建了以下问题,(目前)将计算行列式或矩阵。(我将扩展它,这就是我输入维度和矩阵的原因)。

已编辑--->>> 仍然存在的问题:

  • 它无法识别我的函数中的变量“mat”。

错误:“mat”未在此范围内声明

 #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>

using namespace std;

class matrix {
private:
int rows,columns;

public:
//constructor
matrix ()
{}
matrix(int _rows,int _columns) : rows(_rows),columns(_columns){
{
int **mat=new int *[rows];
for (int r = 0; r < rows; ++r)
mat[r] = new int[columns];
}

}
//destructor
~matrix(){
for (int r = 0; r < rows; ++r)
delete[] mat[r];
delete[] mat;

}

//void allocate();
void getdata() {

cout <<"Enter number of rows :"<<endl;
cin >>rows;
cout <<"Enter number of columns : "<<endl;
cin >> columns;

}
void fill();
double determinant();
void showdata(){

}

};



int main()
{
matrix a;

a.getdata();
a.fill();
a.determinant();

return 0;
}



//fills the matrix
void matrix ::fill(){

for(int i=0;i<rows;i++) {
for(int j=0;j<columns;j++){
cout <<"Enter the elements in a line separated by whitespace :"<<endl;
cin >>mat[i][j];
}
}

}
//calculate the determinant
double matrix :: determinant (){
double det;
det = mat[rows][columns]*mat[rows+1][columns+1] - mat[rows][columns+1]*mat[rows+1][columns];
cout <<"The determinant of matrix is :"<<det<<endl;}

最佳答案

您要做的是将 mat 初始化为一个动态大小的数组。正如您的编译器告诉您的那样,这不能在常量表达式中完成。

您必须为 matrix 类编写构造函数,它将 rows 作为参数并包含 mat=new int *[rows] 线。请注意,您还需要初始化 mateach 行;您的 allocate 方法执行此操作并且应该从构造函数中调用。

关于C++矩阵计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5141989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com