我正在尝试创建一个分数矩阵。
首先,我创建一个类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:对不起我的英文,我希望你理解我:(
答案 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 {
// ...
}:
考虑每种支持的数字类型的数学运算。