2016-03-27 20 views
-1

Ich habe eine Windows Form Application erstellt, die 2 Eingangsnummern testet. Der Ausgang muss gemäß dieser Tabelle sein: this tableTesten einer Windows Form-Anwendung in C#

Mein aktuelles Programm erstellte die erwartete Ausgabe für alle Zahlen außer 7,5. Es gibt mir 1,2 statt 6,7

Ich bin mir nicht sicher, was bewirkt, dass dies geschieht.

mein Code hier so weit:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace WhiteBox 
{ 
public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void btnStart_Click(object sender, EventArgs e) 
    { 
     int one = int.Parse(tbInputOne.Text); 
     int two = int.Parse(tbInputTwo.Text); 
     clearOutput(); 
     runCal(one, two); 
    } 
    private void clearOutput(){ 
     tbOneA.Clear(); 
     tbOneB.Clear(); 
     tbTwoA.Clear(); 
     tbTwoB.Clear(); 
     tbThreeA.Clear(); 
     tbThreeB.Clear(); 
     tbFinalA.Clear(); 
     tbFinalB.Clear(); 

} 
    private void runCal(int a, int b){ 
     if (a>=b){ 
      int temp = b; 
      b = a; 
      a = temp; 
      tbOneA.Text = a.ToString(); 
      tbOneB.Text = b.ToString(); 
     } 
     if ((Math.Cos(a)) == 0 || (Math.Cos(b) >= 0)){ 
      //Changed the < to == 
      a = 1; 
      b = 3; 
      tbTwoA.Text = a.ToString(); 
      tbTwoB.Text = b.ToString(); 
     } 
     int x = (a + b)/2; 
     if (Math.Cos(x) > 0){ 
      a = x; 
      tbThreeA.Text = a.ToString(); 

     } 
     else { 
      b = x; 
      tbThreeB.Text = b.ToString(); 

     } 
     tbFinalA.Text = a.ToString(); 
     tbFinalB.Text = b.ToString(); 
    } 
} 


} 
+3

Ort, um eine Bruchstelle in der ersten Zeile von 'runCal()' und durch jede Codezeile Schritt, wie er ausgeführt wird. –

+0

Ich bin mir nicht sicher, was ich sehen soll. Ich bin mir sicher, dass es ein einfacher Fehler ist, aber ich kann es nicht sehen. – Anonymous

Antwort

1

Überprüfen Sie den Fluss von runCal:

Geben Sie mit: a = 7, b = 5

if (a>=b) => (7>=5) => true 
{ 
    swap(a,b) 
} 

Nach dem ersten, wenn: a = 5, b = 7

if((Math.Cos(a)) == 0 || (Math.Cos(b) >= 0)) => (0.283662185 == 0 || (0.753902254 >= 0)) => false || true => true 
{ 
    a=1, b=3 
} 

Nach dem zweiten wenn: a = 1, b = 3

x = (a + b)/2 = 2 
if (Math.Cos(x) > 0) => (-0.416146837 > 0) => false 
*here go to else 
{ 
    b = x = 2 
} 

am Ende: a = 1, b = 2

+0

Können Sie das erklären? Ich kann es nicht sehen. – Anonymous

+0

Siehst du es jetzt? –

+0

Ich bin immer noch nicht sicher, was ich ändern muss – Anonymous