1

分数を変更するプログラムを作成しようとしていますが、負の "-" が 1 回だけ正しく出力されるようにする必要があります。ユーザーが分子と分母を入力し、両方を負として入力すると、-1/-2 を表示できません。ネガが 1 つだけの場合も同様で、1/-2 を表示できません。私が思いついた解決策は、Math.abs を使用して num と den の両方から負を削除し、出力中に負を追加することです IF Math.abs は一度だけ使用する必要がありました。2 回使用された場合は、マイナスを削除して num と den のみを出力するロジックを含めます。 Math.abs が使用された頻度をカウントし、ユーザーが num または den のいずれか、またはその両方に正の数を入力したときに誤検知が表示されるのを防ぐにはどうすればよいですか。

現時点で私のコードは絶対値に変換する作業のみを行っているため、カウントを維持するために表示するものは何もありません。

snum = Math.abs(num);

*ここで、num はユーザーが入力した数値で、snum は abs に変換された数値です。

どんな助けでも大歓迎です。

ありがとう、INGUES

4

3 に答える 3

5

分母が負の場合は、両方の符号を反転するだけです。

于 2012-01-26T22:39:41.290 に答える
0

擬似コード:

if numerator < 0 and denominator < 0 then
   numerator = -numerator
   denominator = -denominator
   sign = '+'
elsif numerator < 0 then
   numerator = -numerator
   sign = '-'
elsif denominator < 0 then
   denominator = -denominator
   sign = '-'
end if

print sign, numerator, '/', denominator
于 2012-01-26T22:35:55.313 に答える
0

いいえ、内部表現のマイナス記号はそのままにしておきます。破損するのは出力のみです。これが私の解決策です:

String sign = (num * denom < 0)? "-" : "";
System.out.println(sign + Math.abs(num) + "/" + Math.abs(denom));
于 2012-01-26T22:33:57.627 に答える