I have build a high score list that asks the user to enter name and score and then sort the list so the score comes in the right order.

My problem is that the sort function only works once, the second time I enter name and score the list is not sorted..any one see why?

#include <iostream>
#include <string>
using namespace std;

int main()
    int myArray[5]= {1000,800,700,500,100};
    std::string names[5]= {"Erik","Andy","Emma","Tyra","ulla"};

    int i;
    int j;
    int flag = 1;
    int temp;      // behållare för värde i arrayen
    int a;
    int e=0;
    std::string answer;
    std::string tempnamn;

    int numLength =5; // längden på arrayen

    for (e=1; e<2; e++)     // evig loop
        cout << "Highscore list:\n\n";

        for (a=0; a<5; a++)    // skiver ut arrayen
            cout << names[a] << "\t\t" << myArray[a] << "\n";

        cout << "Do you want to enter a new name? (yes/no)";
        cin >> answer;

        if (answer=="yes")
            cout << "Fyll i din poäng:\n";
            cin  >> myArray[4];
            cout << "\n";

            cout << "Fyll i ditt namn:\n";
            cin  >> names[4];
            cout << "\n";

            for(i = 1; (i <= numLength) && flag; i++)// så länge i är mindre eller lika med 5 + flaggan, körs loopen.
                flag = 0;

                for (j=0; j < (numLength -1); j++)        // loopen kör så länge j är mindre än 4
                    if (myArray[j+1] > myArray[j])      // villkor som kontrollerar vilka värden som jämförs
                        temp = myArray[j];             // byter plats på element i arrayen
                        myArray[j] = myArray[j+1];
                        myArray[j+1] = temp;

                        tempnamn = names[j];
                        names[j] = names[j+1];
                        names[j+1] = tempnamn ;

                        flag = 1;               // visar att ett byte är gjort och att loppen ska köras igen/ om inget byte är gjort har flag värde 0 och arrayen är sorterad
        } //yes
    } // avslutar den eviga loopen

    return 0;

Edited by Narue: Adjusted the formatting to be non-stupid

5 Years
Discussion Span
Last Post by emmaand
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.