阅读本书C Programming A Modern Approach。我有一个练习,我应该把分数降到最低。将分数降至最低
,提交给我的提示,那是我第一次可以计算GCD分子和分母,然后除以在GCD分子和分母。
这里是我的程序:
#include <stdio.h>
int main(void)
{
int frac1;
int frac2;
int gcd;
int a;
int b;
int c;
printf("Enter a fraction: ");
scanf("%d/%d", &frac1, &frac2);
b = frac1;
a = frac2;
//Calculate GCD
c = a % b;
while(gcd > 0)
{
a = b;
b = c;
c = a % b;
if(c <= 0)
{
gcd = b;
break;
}
}
//Divide the numerator and denominator with the GCD
frac1 /= gcd;
frac2 /= gcd;
printf("In lowest terms %d/%d\n", frac1, frac2);
return 0;
}
当我给6/12作为输入,我收到以下错误信息:浮点异常
我如何计算的分子和分母的GCD分别?
@SamiKuhmonen:谢谢:) – Bryan