-1

是的。这是一个作业,老实说,这对我来说是一个脑筋急转弯。这个程序的目标,或“问题”(如果你想用数学术语来看待它)是将两个数字相除。您可以将整数和分数相除。函数定义如下所示:

bool divide(int c1, int n1, int d1, int c2, int n2, int d2, char result[], int len)

c1, c2 - 整数

n1, n2 - 分子 1, 分子 2

d1,d2 - 分母 1,分母 2

result[ ] - 显示答案的字符数组

len - 结果中允许的字符数 []


我会简单地使用长除法并以这种方式找到我的答案,但由于存在不使用doublefloatstring的限制,我对我的方法的选择更加有限。

好消息是我距离最终解决方案还有很长的路要走,我想就我的下一步行动征求意见。到目前为止,这是我的过程:

1)将每个数字转换为假分数

2) 取结果 1 * (1 / 结果 2 )

3)找到解的整数部分(如果有的话)

4)(从假分数)拿分子%分母来找到我的混合分数的新分子

5)我现在在这里,试图为分母找到一个以 10 为底的倍数,这样我就可以用十进制格式表示混合分数。任何指针都会有帮助!

4

1 回答 1

2

(A/B) / (C/D) = (A/B) x (D/C) = (AD) / (BC)

所以只需计算 AD 和 BC,然后减少到最低项。

如果您想实际进行除法,请按照与纸上相同的方式进行。

于 2013-09-18T03:53:43.543 回答