2017-03-20 1 views
-1

Ich versuche ein Programm zu erstellen, das es einem Benutzer ermöglicht, die von fünf Richtern vergebenen Punktzahlen einzugeben. Sobald jedoch die Punktzahl des dritten Richters erreicht wird, hört die Erhöhung auf, die verwendet wird, um den Richter # zu markieren, und ich glaube, dass es damit zu tun hat, dass es in einer if/else-Anweisung ist. Hier ist mein Code:C++ Inkrementieren funktioniert nicht in If Else-Anweisung

#include <iostream> 
#include <string> 

using namespace std; 

string name; 
string city; 
double highestScore; 
double lowestScore; 
double totalScore; 

void main() 
{ 

    cout << " Report to the media" << endl; 
    cout << "Enter the diver name: "; 
    getline(cin, name); 
    cout << endl; 
    cout << "Enter the diver's city: "; 
    getline(cin, city); 
    cout << endl; 

    int count = 0; 
    double score1, score2, score3, score4, score5; 
    int judgeNum = 0; 

    judgeNum ++; 
    cout << "Enter the score given by judge #" << judgeNum << ": "; 
    cin >> score1; 
    if (score1 < 0 || score1 > 10) 
      { 
       cout << endl; 
       cout << "Score must be between 1 and 10. Please re-enter score: "; 
       cin >> score1; 
      } 
    cout << endl; 
    count ++; 

    while (count <= 5) 
    { 
     judgeNum ++; 
     count ++; 

     cout << "Enter the score given by judge #" << judgeNum << ": "; 

     if (judgeNum = 2) 
     { 
      cin >> score2; 
      if (score2 < 0 || score2 > 10) 
      { 
       cout << endl; 
       cout << "Score must be between 1 and 10. Please re-enter score: "; 
       cin >> score2; 
      } 
     } 
     else 
     { 
      if (judgeNum = 3) 
      { 
       cin >> score3; 
       if (score3 < 0 || score3 > 10) 
       { 
        cout << endl; 
        cout << "Score must be between 1 and 10. Please re-enter score: "; 
        cin >> score3; 
       }    
      } 
      else 
      { 
       if (judgeNum = 4) 
       { 
        cin >> score4; 
        if (score4 < 0 || score4 > 10) 
        { 
         cout << endl; 
         cout << "Score must be between 1 and 10. Please re-enter score: "; 
         cin >> score4; 
        } 
       } 
       else 
       { 
        if (judgeNum = 5) 
        { 
         cin >> score5; 
         if (score5 < 0 || score5 > 10) 
         { 
          cout << endl; 
          cout << "Score must be between 1 and 10. Please re-enter score: "; 
          cin >> score5; 
         } 
        } 
       } 
      } 
     } 
     cout << endl; 
    } 
    cout << score1 << score2 << score3 << score4 << score5; 
} 
+0

der gesamten Code nicht erforderlich Entfernen Sie den Fehler zu wiederholen. Sagen Sie uns auch, welche Eingabe den Fehler verursacht hat, welche Ausgabe Sie erhalten haben und welche Ausgabe Sie erwartet haben. –

+0

'if (richterNum = 1)' sieht sehr komisch aus. '=' und '==' sind zwei verschiedene Dinge in C++. Wenn Sie einer Variablen einen Wert zuweisen möchten, verwenden Sie '=' und wenn Sie zwei Dinge vergleichen, verwenden Sie '=='. –

+0

Sehen Sie Ihren Code sorgfältig. –

Antwort

2

if (judgeNum = 2) Sätze judgeNum bis 2, und dann überprüft, ob der neue Wert von judgeNum ist "truthy" (Nicht-Null). Da der neue Wert 2 ist, wird es immer sein, und richterNum wird immer auf 2 gesetzt und dann inkrementiert.

In C, C++ und den meisten anderen Sprachen wird die Gleichheit mit zwei = s wie if (judgeNum == 2) bestimmt. Versuchen Sie das zuerst zu beheben.

+0

Danke, ziemlich peinliche Fehler ehrlich, ich wusste das, aber total vermasselt das. – jackofblaze

1

Neben den kdmurray91's answer

richtigen

using namespace std; 

string name; 
string city; 
double highestScore; 
double lowestScore; 
double totalScore; 

void main() 
{ 

    cout << " Report to the media" << endl; 
    cout << "Enter the diver name: "; 
    getline(cin, name); 
    cout << endl; 
    cout << "Enter the diver's city: "; 
    getline(cin, city); 
    cout << endl; 

    int count = 0; 
    double score1, score2, score3, score4, score5; 
    int judgeNum = 0; 

    judgeNum ++; 
    cout << "Enter the score given by judge #" << judgeNum << ": "; 
    cin >> score1; 
    if (score1 < 0 || score1 > 10) 
      { 
       cout << endl; 
       cout << "Score must be between 1 and 10. Please re-enter score: "; 
       cin >> score1; 
      } 
    cout << endl; 
    count ++; 

    while (count <= 5) 
    { 
     judgeNum ++; 
     count ++; 

     cout << "Enter the score given by judge #" << judgeNum << ": "; 

     if (judgeNum == 2) 
     { 
      cin >> score2; 
      if (score2 < 0 || score2 > 10) 
      { 
       cout << endl; 
       cout << "Score must be between 1 and 10. Please re-enter score: "; 
       cin >> score2; 
      } 
     } 
     else 
     { 
      if (judgeNum == 3) 
      { 
       cin >> score3; 
       if (score3 < 0 || score3 > 10) 
       { 
        cout << endl; 
        cout << "Score must be between 1 and 10. Please re-enter score: "; 
        cin >> score3; 
       }    
      } 
      else 
      { 
       if (judgeNum == 4) 
       { 
        cin >> score4; 
        if (score4 < 0 || score4 > 10) 
        { 
         cout << endl; 
         cout << "Score must be between 1 and 10. Please re-enter score: "; 
         cin >> score4; 
        } 
       } 
       else 
       { 
        if (judgeNum == 5) 
        { 
         cin >> score5; 
         if (score5 < 0 || score5 > 10) 
         { 
          cout << endl; 
          cout << "Score must be between 1 and 10. Please re-enter score: "; 
          cin >> score5; 
         } 
        } 
       } 
      } 
     } 
     cout << endl; 
    } 
    cout << score1 << score2 << score3 << score4 << score5; 
}