代码拉取完成,页面将自动刷新
// Divide rational numbers
//
// Input: tos-2 dividend
//
// tos-1 divisor
//
// Output: quotient on stack
#include "stdafx.h"
#include "defs.h"
void
qdiv(void)
{
unsigned int *aa, *bb, *c;
save();
p2 = pop();
p1 = pop();
// zero?
if (MZERO(p2->u.q.a))
stop("divide by zero");
if (MZERO(p1->u.q.a)) {
push(zero);
restore();
return;
}
aa = mmul(p1->u.q.a, p2->u.q.b);
bb = mmul(p1->u.q.b, p2->u.q.a);
c = mgcd(aa, bb);
MSIGN(c) = MSIGN(bb);
p1 = alloc();
p1->k = NUM;
p1->u.q.a = mdiv(aa, c);
p1->u.q.b = mdiv(bb, c);
mfree(aa);
mfree(bb);
mfree(c);
push(p1);
restore();
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。