是的。这是一个作业,老实说,这对我来说是一个脑筋急转弯。这个程序的目标,或“问题”(如果你想用数学术语来看待它)是将两个数字相除。您可以将整数和分数相除。函数定义如下所示:
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 - 结果中允许的字符数 []
我会简单地使用长除法并以这种方式找到我的答案,但由于存在不使用double、float或string的限制,我对我的方法的选择更加有限。
好消息是我距离最终解决方案还有很长的路要走,我想就我的下一步行动征求意见。到目前为止,这是我的过程:
1)将每个数字转换为假分数
2) 取结果 1 * (1 / 结果 2 )
3)找到解的整数部分(如果有的话)
4)(从假分数)拿分子%分母来找到我的混合分数的新分子
5)我现在在这里,试图为分母找到一个以 10 为底的倍数,这样我就可以用十进制格式表示混合分数。任何指针都会有帮助!