-1
私はFraction
という名前のクラスを持ち、クラスの外側では、基数を得るために関数baseF
を使用します。基本分数を取得しようとするとランタイムエラーが発生する
void Fraction::baseF() {
int n=num,d=den,i;
if(n<d) {
for(i=0;i<n;i++)
if(n%i==0 & d%i==0) {n/=i;d/=i;}
} //end if
else {
for(i=0;i<d;i++)
if(n%i==0 & d%i==0) {n/=i;d/=i;}
} //end else
num=n;
den=d;
}
私はコードが効率的ではなく、単にロジックを取得しようとしていることを知っています。
あなたはかなり多くゼロで割っています。 2つよりも少ない分割可能性をテストする必要はありません。 – molbdnilo
2つの 'for'ループの違いは何ですか? (それらは同じであるので、 'else'節を取り除きます)。 –
ちなみに、* bitwiseとoperator&*の代わりに**論理AND演算子&& **を使用することができます。 –