Ordinamento array

di il
3 risposte

Ordinamento array

Buongiorno

Non ho esperienza come programmatore, quindi abbiate pietà.

mi dà un errore di overflow: Process returned -1073741819

#include <iostream>

using namespace std;

int main()
{
    int const elements = 5;
    string name_written [elements] = {""};
    int height_written[elements] = {0};



    cout << "Write the name:" << endl;
    cin >> name_written [0];
    cout << "Write the height:" << endl;
    cin >> height_written[0];


    cout << "Write the name:" << endl;
    cin >> name_written [1];
    cout << "Write the height:" << endl;
    cin >> height_written[1];


    cout << "Write the name:" << endl;
    cin >> name_written [2];
    cout << "Write the height:" << endl;
    cin >> height_written[2];


    cout << "Write the name:" << endl;
    cin >> name_written [3];
    cout << "Write the height:" << endl;
    cin >> height_written[3];

    cout << "Write the name:" << endl;
    cin >> name_written [4];
    cout << "Write the height:" << endl;
    cin >> height_written[4];

int index = elements;


 for (int a = 0, var_height = 0, cont_a = 0, cont_i = 0; a<(index-1); a++)
    {

        cont_a = 0;
        cont_i = 0;
        string var_name = {""};
        for (int i = 1; i<index; i++)
        {
            if ((height_written[a] > height_written[(i+a)]) && (height_written[a] > var_height))
            {
                var_height = height_written[a];
                var_name = name_written[a];
                cont_a = a;
                        cout << name_written[0] << " if" << endl;


            }
            else
            {
                if (height_written[(i+a)] > var_height)
                {

                    var_height = height_written[(i+a)];
                    var_name = name_written[(i+a)];
                    cont_i = (i+a);
                    cout << name_written[1] << " else" << endl;

                }
            }

        }

        if (cont_a >= cont_i)
        {
            height_written[cont_a] = height_written[a];
            height_written[a] = var_height;
            name_written[cont_a] = name_written[a];
            name_written[a] = var_name;
        }
        else
        {

            height_written[cont_i] = height_written[a];
            height_written[a] = var_height;
            name_written[cont_i] = name_written[a];
            name_written[a] = var_name;
        }


    }



    return 0;
}

3 Risposte

  • Re: Ordinamento array

    Non sei un programmatore ma stai scrivendo un programma (se l'hai scritto tu). Come mai?

    E' un esercizio scolastico? Cosa devi fare esattamente, non hai spiegato bene. E soprattutto non hai indicato dove hai quell'errore e con quali dati inseriti.

  • Re: Ordinamento array

    Mi scuso se sono stato avaro d'informazioni:

    Si, di fatto è un esercizio scolastico (vorrei imparare).

    L'utente digiterà dei nomi e la relativa altezza e verranno riordinati in funzione dell'altezza dal più alto al più basso:

    Per fare questo uso 2 varabili temporanea var_name, var_height e 2 cicli for. Per ora non stampo il risultato perchè si pianta subito dopo che ho inserito i dati.

    Per mie incapacità non riesco a debuggare, uso il Code::Blocks

  • Re: Ordinamento array

    Tanto per cominciare usa un ciclo for per l'input invece di ripetere le istruzioni per ogni elemento dell'area.

    In secondo luogo, usa un semplice algoritmo di ordinanento, con due for semplici (esempio un bubble sort)

Devi accedere o registrarti per scrivere nel forum
3 risposte