创建分数矩阵

时间:2013-12-11 19:37:03

标签: c++ c matrix fractions

我正在尝试创建一个分数矩阵。 首先,我创建一个类Matrix,并定义方法,如创建新矩阵,删除矩阵,求解矩阵(Gauss和Gauss-Jordan方法)。矩阵上的所有值都是浮点数。我编译所有并且工作:D。但是现在,我正在尝试创建另一个矩阵,与第一个完全相同,但这只需要分数。这是我的问题,我是怎么做到的?我如何创建一个接收2个数字的方法(例如:myMethod(2,3)),将这些视为2/3并放入矩阵位置?我的目标是这样的:

矩阵:

1/2   2/3   1/5

2/5   3/4   3/2

2/7   3/5   1/3

所有数字都将由用户发送,例如cin>>n1>>n2;(实际上这是n1/n2

PD:我正在考虑创建一个for循环,如:

for(i=0;i<3;i++)
    myMethod(n1,n2);
PD2:对不起我的英文,我希望你理解我:(

2 个答案:

答案 0 :(得分:1)

据我所知,c ++本身无法处理分数。你能做的最好的就是漂浮。或者,如果您只想将矩阵显示为分数(并且可能对其执行某些操作),您可以执行以下操作。

Mat numerator[3][3];
Mat denominator[3][3];
cin>>numerator[0][0]>>denominator[0][0];
//.... for all elements

//Display
cout<<numerator[0][0]<<"/"<<denominator[0][0];

//operations
newmatrix[0][0] = numerator1[0][0]*numerator2[0][0] / (denominator1[0][0]*denominator1[0][0]);

希望这有帮助。

答案 1 :(得分:0)

template <typename NumberType>
class Matrix {
   // ...
}:

考虑每种支持的数字类型的数学运算。