Aggiungere gli indici alla mia stampalista.

di Anonimizzato13124 il
13 risposte
Volevo chiedervi se con qualche piccola modifica fosse possibile fare in modo che quando stampo la mia lista ho una grafica del genere:
1)nome cognome voto
2)nome cognome voto

Quindi se è possibile far comparire gli indici alla mia lista.

void print_list(stud_p p)
{
     if(p!=NULL)
     {
                printf("\n%4s  %4s  %4s  \n\n",p->nome,p->cognome,p->voto);
                p=p->next;
                print_list(p);
                }
                }

13 Risposte

  • Ma perché queste richieste banali?

    Dopo tanti programmi su programmi, non hai imparato proprio nulla ... ?

    Perché non provi mai a fare da solo queste semplici cosette ?
  • Che pensate che non ci avevo pensato a una soluzione del genere?!! Eccoo le modifiche che ho apportato ma non capisco il motivo la variabile i rimane sempre a 0.
    
    void print_list(stud_p p)
    {int  i=0;
         if(p!=NULL)
         {
                    printf("\n%d %4s  %4s  %4s  \n\n",i,p->nome,p->cognome,p->voto);
                    p=p->next;
                    print_list(p);
                    i++;
                    }
                    
                    }
    
    
  • Se ti sforzi solo un pò lo capisci da solo il perchè.
    E se non ci riesci prova ad eseguire mentalmente il codice.
    E se non riesci a fare neanche questo metti qualche printf() prima e dopo la chiamata alla print_list() che ti mostri il valore di i.
    Se non riesci neanche a fare questo allora prova ad eseguire il codice con un debugger.

    Alcune mie curiosità:
    - come fai a scrivere quaranta programmi contemporaneamente?
    - Come riesci a pensare alla gestione di una lista, con puntatori ovunque, se hai questi dubbi di base?
  • Quaranta programma contemporaneamente?
  • candaluar ha scritto:


    Come riesci a pensare alla gestione di una lista, con puntatori ovunque, se hai questi dubbi di base?
    Semplice ... assembla vari pezzi copiati o forniti da altri, senza capire minimamente quello che scrive.

    Mi dispiace dirlo, ma dopo tante volte che ti si viene in aiuto si sperava che un po' ti cominciassi ad interessare per comprendere quello che fai. Ma non è così.
  • Come non mi interesso?!! Cerco di risolvere i miei problemi da solo , se non ci riesco chiedo aiuto a chi ne sa piu di me!!
  • Non è cosi difficicile da capire :
    Funzione print lista (il puntatore p che punta alla struttura.)
    Controllo se a p è stato associato un qualcosa , se si esegue il printf()
    Poi a p viene assegnata la successiva struct.
    E allora ho anche inserito l'incremento della variabile i prima di quest'ultima istruzione ma non mi viene incrementata. Adesso vi chiedo come mai ?
  • Quaranta è un numero biblico che indica "tanti", associato a periodi importanti per indicarne la lunga durata. Hai fatto tanti post, hai ricevuto tante risposte che ti indicavano bene dove sbagliavi, ti suggerivano come affrontare i problemi... ogni volta hai risposto che non capisci, riposti codice senza senso, fai sempre le stesse domande... insomma non evolvi.
    Il mio consiglio è quello di ripartire dalla basi.
    Compra un libro di C/C++ e poi prova a fare gli esercizi, gradualmente. Non affrontare altri esercizi finchè quello che stai facendo (da solo) non lo hai capito, sviluppato e provato (e anche debuggato se non funziona!).
    Ad esempio: prova a scrivere una funzione per il calcolo del fattoriale di un numero n. Scrivi la funzione sia con un ciclo, sia fanne una versione che calcola in maniera ricorsiva.
  • Grazie del consiglio , mi sarebbe piaciuto sapere pure perche non mi viene incrementata la variabile ad ogni ciclo ma a quanto pare non è ancora il momento..
  • Lo vedi che la funzione print_list richiama sé stessa PRIMA di aumentare i ?

    Quindi, il codice QUANDO ci arriva alla linea i++ ?

    "Capire" significa darsi queste due risposte.
  • Ho già detto di aver inserito l'incremento prima della riga in cui la funzione richiama se stessa!!!!!!
  • @daniele90 ... Perché non hai ancora compreso il concetto di "variabile locale".

    i è una variabile locale della funzione.
  • OK grazie del suggerimento.
Devi accedere o registrarti per scrivere nel forum
13 risposte