[C++] Esercizio sulle Liste

di il
2 risposte

[C++] Esercizio sulle Liste

Ciao ragazzi! Devo, in un esercizio, creare una lista e visualizzarne l'elemento minore. Ho scritto il codice, ma non mi visualizza il minimo. Mi potete aiutare?

#include <iostream>
#include <stdlib.h>
using namespace std;

struct elemento {
    int valore;
    elemento* succ;
};

int main() {
    elemento *p;
    elemento *p1;
    int dim1;
    int minimo1;

    p=new elemento;
    p1=p;

    cout<<"inserisci la grandezza della lista ";
    cin>>dim1;
    cout<<"inserisci il valore dell'elemento 1: ";
    cin>>p1->valore;
    for (int i=2; i<=dim1; i++)
    {
    p1->succ=new elemento;
    p1=p1->succ;
    cout<<"inserisci il valore dell'elemento "<<i<<": " ;
    cin>>p1->valore;
    }

    p1->succ=NULL;
    p1=p;

minimo1=p1->valore;

    while (p1!=NULL) {
        if (p1->valore<minimo1)
        {
            minimo1=p1->valore;
            p1=p1->succ;
        }
    }
    cout << "Il minimo della prima lista e': " << minimo1 << endl;
return 0;
}
Grazie!

2 Risposte

  • Re: [C++] Esercizio sulle Liste

    if (p1->valore<minimo1)
            {
                minimo1=p1->valore;
            }
            p1=p1->succ;
    altrimenti (tranne in alcuni casi particolari) crea un ciclo infinito!

    Per scoprire errori come questi puoi (ad esempio) piazzare dei cout<< con un messaggio particolare lungo il codice, così sai sempre che istruzione stà eseguendo quando si blocca.
    O puoi usare un debugger...
  • Re: [C++] Esercizio sulle Liste

    Buono a sapersi! Grazie mille!
Devi accedere o registrarti per scrivere nel forum
2 risposte