2016-11-27 138 views
1

好吧,所以在書中即時閱讀它告訴我寫一個程序,要求用戶兩個數字相乘,然後將打印出來的結果是否應該是積極的還是消極的。積極或消極的 - 如果聲明

的規則是,我不能把兩個數字和繁殖它們,然後檢查如果結果大於或小於零。相反,如果兩個數字具有相同的符號(包括正數或負數),則結果爲正數。如果他們有不同的跡象,結果是消極的。 (我還加了int anresult = 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

測試與5代碼爲第一和0的第二 – CodingYoshi

+0

諾諾,即時通過檢查第一號和第二,想知道如果我的辦法就是像書本所以基本上它的發現正負號碼,看看它是否 - 或+ ,因爲我不應該檢查結果。 所以我不能檢查,如果我把2和-5,答案是-3,我的代碼不能被檢查-3檢查,如果其負面 這樣的IM,如果我的代碼在頂部由符號,而不是checkijng疑惑最終結果 –

+1

本書中的代碼非常糟糕 - 使用'bool firstNumberPositive = first> 0;'會更清晰。任何時候,如果你看到'if'分支分配(或返回)true和false而不做其他任何事情,它可以改進。 –

回答

1

該解決方案在本書中介紹不考慮輸入爲0的情況,所以它的行爲與你寫的代碼不同。

0

您的解決方案不會輸出與本書相同的結果。試試firstsecond 0.你的代碼會說結果是負面的,而本書的解決方案會說它是正面的。

我認爲,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"); 
}