2016-11-27 8 views
1

本書では、2つの乗算番号をユーザに尋ねるプログラムを書くように指示しているので、結果が肯定的であるか否定的であるかを印刷します。肯定的または否定的 - 文の場合

ルールは、2つの数値を乗算して乗算することができず、結果がゼロよりも大きいか小さいかをチェックすることです。代わりに、2つの数字が同じ符号(正または両方とも)を有する場合、結果は正である。彼らのサインが異なる場合、結果は否定的です。

私はこれを削除してもまだ動作しますが、本はそれを乗算したいので、このようにしました(また、intresres = first * second; <を追加しました)。図書の方法と同じ私の道をので、コードのその部分がすべて

  Console.WriteLine("Enter First Nuumber: "); 
     string firstAsString = Console.ReadLine(); 
     int first = Convert.ToInt32(firstAsString); 


     Console.WriteLine("Enter Second Nuumber: "); 
     string secondAsString = Console.ReadLine(); 
     int second = Convert.ToInt32(secondAsString); 



     int anresult = first * second; 

     if (first >= 0 && second > 0 || first < 0 && second < 0) 
      Console.WriteLine("Your number will be Positive"); 
     else 
      Console.WriteLine("Your number will be negative"); 


     Console.ReadLine(); 

で何かをやっているかどうかわからないイムしかし、この本は、この

  Console.WriteLine("Enter First Nuumber: "); 
     string firstAsString = Console.ReadLine(); 
     int first = Convert.ToInt32(firstAsString); 


     Console.WriteLine("Enter Second Nuumber: "); 
     string secondAsString = Console.ReadLine(); 
     int second = Convert.ToInt32(secondAsString); 


     bool firsNumberPositive; 
     bool secondNumberPositive; 


     if (first > 0) { 
      firsNumberPositive = true; 
     } 
     else 
     { 
      firsNumberPositive = false; 
     } 

     if (second > 0) 
     { 
      secondNumberPositive = true; 
     } 
     else 
     { 
      secondNumberPositive = false; 
     } 

     if (firsNumberPositive && secondNumberPositive || !firsNumberPositive && !secondNumberPositive) 
      Console.WriteLine("Answer Is Positive"); 
     else 
      if (!firsNumberPositive && secondNumberPositive || firsNumberPositive && !secondNumberPositive) 
     Console.WriteLine("Answer Is Negative"); 

     Console.ReadLine(); 

のようにそれをやったイマイチ?本は示しているのでちょうど私のような数字を使用している

if (first > 0) { 
       firsNumberPositive = true; 
      } 

は正と負の相続人

鉱山、同じことを表示するのですか?..

if (first >= 0 && second > 0 || first < 0 && second < 0) 
       Console.WriteLine("Your number will be Positive"); 
      else 
       Console.WriteLine("Your number will be negative"); 
+0

は私のやり方はとても基本的には、第1の数と第2のを確認することで、正、負のを見つけ、ちょうど本のようなものである場合には思って、最初の5と第二 – CodingYoshi

+0

NONOのため0とイムをあなたのコードをテストします数字がそのa - or a + であるかどうかを調べるためには、結果で確認する必要がありません。 私は2と-5を入れて答えが-3かどうかを調べることができません。私のコードは-3をチェックして負であるかどうかを確認します 私のコードがトップでcheckijngであるかどうかは不思議です。最終結果 –

+1

本のコードは恐ろしいです。 'bool firstNumberPositive = first> 0;'を使う方がずっときれいです。 'if'ブランチが他のことをしないで真と偽を割り当て(または返す)分岐を見るたびに、改善することができます。 –

答えて

1

ソリューションは、本書で提示します入力が0の条件を考慮しないため、記述したコードとは異なる動作をします。

0

解決策は、本の結果と同じ結果を出力しません。 firstsecondの両方で試してみてください。あなたのコードでは、書籍の解決策が陽性であると答えている間は結果は否定的です。

私の意見では、0は正数でも負数でもなく、別々に処理する必要があります。だからここに私のソリューションです:

if (first == 0 || second == 0) { 
    Console.WriteLine("The result is 0"); 
} else if ((first > 0) != (second > 0)) { // here, it might look a little weird but I'm just checking whether the signs are the same. 
    Console.WriteLine("The result is negative"); 
} else { 
    Console.WriteLine("The result is positive"); 
} 
関連する問題