私はC++のちょっとした話で、クラスについて学ぶだけです。私は、3x3行列の加算、減算、行列式の発見を可能にするクラスを使用するプログラムを作成しています。私の問題は、これをコンパイルするたびに、「最初の配列...と2番目の配列のデータを入力してください」という質問が2回あります。私はこれを解決する方法がわかりません。また、誰かがこれの決定的な部分と逆の部分についてのヒントを持っていたのかどうか疑問に思っていました!
これは私がこれまで持っているものです。C++行列のタスクを実行するクラス
#include<iostream>
using namespace std;
Matrixクラス:
class matrix {
int a[3][3], b[3][3];
int add[3][3], sub[3][3];
public:
matrix()
{
cout << "Enter data for first array:" << endl;
for(int i = 0; i < 3; i++)
for(int j = 0; j < 3; j++)
cin >> a[i][j];
cout << "Enter data for second array:" << endl;
for(int i = 0; i < 3; i++)
for(int j = 0; j < 3; j++)
cin >> b[i][j];
}
void addition()
{
cout << "After matrix addition" << endl;
for(int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
add[i][j]= a[i][j] + b[i][j];
cout << add[i][j] << "\t";
}
cout << endl;
}
}
void subtraction()
{
cout << "After matrix subtraction" << endl;
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{
sub[i][j] = a[i][j] - b[i][j];
cout << sub[i][j] << "\t";
}
cout << endl;
}
}
};
メイン:
int main() {
cout << "Calculations of matrix:" << endl;
matrix mtAdd = matrix();
matrix mtSub = matrix();
mtAdd.addition();
mtSub.subtraction();
return 0;
}
ちょうどヒントは、どこにでも置くのではなく、テーブルサイズ '3'に対して' enum'または 'static const'を使うべきでしょう。 –
私は、すでに3x3の行列実装を持っているライブラリを使用する(または研究する)ことをお勧めします。私はこのためにEigen3を強く勧めます。 –
2つの行列オブジェクトを作成していますが、それぞれに4つの配列a、b、add、subが含まれています...どのコードを行列クラスに含めるべきか、たとえば、各マトリックスクラスに含まれる配列の数はいくつですか? –