2016-11-27 2 views
1

In Ordnung, so in dem Buch im Lesen seiner sagt mir, ein Programm zu schreiben, fragt den Benutzer nach zwei Multiplikationszahlen und dann wird es ausdrucken, ob das Ergebnis positiv oder negativ sein sollte.Positive oder Negative - Wenn Statements

Die Regel ist, dass ich nicht zwei Zahlen nehmen und sie multiplizieren kann, und dann überprüfen, ob das Ergebnis größer oder kleiner als Null ist. Wenn die beiden Zahlen das gleiche Vorzeichen haben (beide positiv oder beide negativ), ist das Ergebnis positiv. Wenn sie unterschiedliche Vorzeichen haben, ist das Ergebnis negativ.

Ich tat es so (auch ich fügte Int anresult = erste * zweite; < - brauche ich das?), Denn wenn ich es entfernen, funktioniert es noch, aber das Buch will es in Multiplikation. so im nicht sicher, ob das Stück Code tut alles an allen

  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(); 

Aber das Buch hat es wie dieses

  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(); 

ist nicht meine Art und Weise die gleiche wie die Art und Weise Bücher? weil das Buch zeigt

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

, die die Zahlen wie i verwendet sind positives und negatives

heres Mine, die gleiche Sache sehen? ..

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

Testen Sie Ihren Code mit 5 für die ersten und 0 für die zweiten – CodingYoshi

+0

Nono, im wundern, wenn meine Art und Weise wie die Bücher, so dass im Grunde seiner Suche nach der positiven negativ durch die erste Zahl der Überprüfung und die zweiten Nummer zu sehen, ob es ein - oder a + weil ich nicht durch das Ergebnis überprüfen soll. so kann ich nicht überprüfen, ob ich 2 und -5 und die Antwort ist -3, mein Code kann nicht überprüfen -3, um zu überprüfen, ob seine negative so ich frage mich, ob mein Code an der Spitze Checkjng durch das Zeichen und nicht die Endergebnis –

+1

Der Code im Buch ist schrecklich - es wäre viel sauberer zu benutzen 'bool firstNumberPositive = first> 0;'. Jedes Mal, wenn Sie 'if'-Zweige sehen, die true und false zuweisen (oder zurückgeben), ohne etwas anderes zu tun, kann es verbessert werden. –

Antwort

1

Die Lösung in dem Buch vorgestellt berücksichtigt nicht die Bedingung, bei der die Eingabe 0 ist, so dass es sich anders verhält als der Code, den Sie geschrieben haben.

0

Ihre Lösung nicht ausgibt das gleiche Ergebnis wie die in dem Buch. Versuchen Sie es einfach mit first und second 0. Ihr Code wird sagen, dass das Ergebnis negativ ist, während die Lösung des Buches sagt, dass es positiv ist.

Meiner Meinung nach ist 0 weder eine positive noch eine negative Zahl und sollte getrennt behandelt werden. Also hier ist meine Lösung:

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"); 
} 
Verwandte Themen