【发布时间】:2014-02-04 09:18:24
【问题描述】:
我想检查分数 2 4(例如)是否可以简化为 1 2!!
但是逻辑条件失败。
#include <stdio.h>
int main()
{
int a,b,live=1;
printf("\n\nInput integers for fraction:");
scanf(" %d%d",&a,&b);
while(live){
if(!(a%2 && b%2)){
a/=2;
b/=2;
}else if(!(a%3 && b%3)){
a/=3;
b/=3;
}else if(!(a%5 && b%5)){
a/=5;
b/=5;
}else if(!(a%7 && b%7)){
a/=7;
b/=7;
}else live--;
}
printf("Simplified Fraction is %d/%d",a,b);
}
【问题讨论】:
-
也许你想要
a%2==0... -
可以
while ((a%2 == 0) && (b%2 == 0)) { a/=2; b/=2; } while ((a%3 == 0) && (b%3 == 0)) { a/=3; b/=3; } ...。现在所有的函数调用都设置好了。
标签: c algorithm if-statement modulo fractions