Ciao, sto sviluppando questo semplice programma che legge delle righe di caratteri e li stampa a video, la lettura di ogni riga si arresta quando viene digitato '0' (e qui tutto ok), in teoria il programma dovrebbe arrestarsi quando viene digitata una riga con solo uno '0', ma ciò non accade, sono necessari due zero ('00') per arrestare il programma. Dove sto sbagliando? il codice è il seguente:

#include <stdio.h>
#include <stdlib.h>

typedef struct nodo Nodo;
struct nodo {
    char valore;
    Nodo * prox;
};

void stampa (Nodo * t) {
    while ( t != NULL ) {
        printf("%c ", t->valore);
        t = t->prox;
    }
    printf ("\n");
    return;
}

Nodo * nuovonodo (int n) {
    Nodo * np;
    np = (Nodo *) malloc (sizeof(Nodo));
    if ( np == NULL ) exit(EXIT_FAILURE);
    np->valore = n;
    np->prox = NULL;
    return np;
}

Nodo * inserisci(int n, Nodo * t) {
    Nodo * nuovo;
    nuovo = nuovonodo (n);
    if (t == NULL) { /* Catena vuota */
        return nuovo;
    }
    nuovo->prox = t;
    return nuovo;

}

int main (int argc, char * argv[]) {
    char n;
    Nodo * testa;
    testa = NULL;
    n=getchar();
    while (n != '0'){
        while ( n != '0' ) {
            testa = inserisci(n, testa);
            n=getchar();        
        }
        stampa(testa);
        n=getchar();
        testa=NULL;

    }
    exit(EXIT_SUCCESS);
}

chiesto 04 Set '16, 18:59

Gg_12's gravatar image

Gg_12
202

modificato 04 Set '16, 20:13

dadexix86's gravatar image

dadexix86 ♦♦
16.9k816161

Scrivi tu la prima risposta!
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×103

domanda posta: 04 Set '16, 18:59

domanda visualizzata: 208 volte

ultimo aggiornamento: 04 Set '16, 20:13

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.