我编写了一个代码,它输入3个整数(整数,分子和分母)并将它们显示为“a {b / c}” 我已经定义/声明了一个类(小数),它包含这3个独立的整数变量以及读取和打印它们的函数。 为了存储其中几个不同的输出,我创建了一个定义的类类型的动态数组。 我想把所有的价值加在一起,例如 fract [0] .a + frac [1] .a ..等整数部分,找到分数部分的总和,然后显示它。
对于类声明,我已经包含了一个友元函数:
friend fraction operator +(fraction, fraction);
我还声明了2个类型分数
的动态数组fraction* fracarry = new fraction[x];
fraction* fractot = new fraction[1];
fracarry存储输入分数,fractot初始化为:
numerator = 0;
denominator = 1;
integral = 0;
友元功能的定义如下:
fraction operator+(fraction, fraction)
{
for(int i = 0; i < x; i++)
{
fractot[0].denominator += fracarry[i].denominator*fractot[0].denominator;
fractot[0].integral += fracarry[i].integral;
fractot[0].numerator += ((fracarry[i].numerator*fractot[0].denominator) + (fractot[0].numerator*fracarry[i].denominator));
}
return fractot[0];
}
其中x是用户输入的输入数量。
主要功能是:
cout << " Please input how many fractions you will be inputting: " << endl;
cin >> x;
fraction *fracarry = new fraction[x];
fraction *fractot = new fraction[1];
fracarry[0].read();
fractot[0] = fractot[0] + fracarry[0];
fractot[0].print2();
我不确定我是否应该在函数定义或主函数中使用循环。它符合并且读取/打印功能有效,但我不能将它显示为fractot.print2()作为存储在fracarry中的值的最终总和
我不想要确切的代码,只是提示我可能出错的地方/要查找的内容,或任何可能有帮助的教程等等
谢谢!
**编辑 这与问题相同,但我试图减少不相关的代码/使其更符合要求!
答案 0 :(得分:0)
我认为你的问题在于以下几点:
fractot[0].integral =+ fracarry[j].integral;
fractot[0].numerator =+ fracarry[j].numerator;
为了将参数与自己的值相加,您必须这样写:+=