Originariamente inviato da YuYevon
E con la seconda? E' strano perché a me funzionano entrambe... quale compilatore stai usando e su quale sistema?
nella scanf() forse intendevi dire... comunque ti ripeto a me vanno bene entrambe le soluzioni. Magari può essere utile che posti un esempio completo di esecuzione come la ottieni tu, cioè proprio ciò che ti esce scritto nella console dall'avvio del programma fino alla terminazione.
Ciao, scusami se rispondo ora.
Il codice è questo:
codice:
#include <stdio.h>
#include <stdlib.h>
struct utente
{
int id;
struct utente *next;
};
int main(void)
{
char ris;
struct utente *testa, *variante;
testa = malloc(sizeof(struct utente));
printf("Inserisci l'ID dell'utente: "); scanf("%d", &testa->id);
variante = testa;
printf(" - Altro utente da inserire? - "); scanf("%c",&ris);
while( ris != 'n')
{
variante->next = malloc(sizeof(struct utente));
printf("Inserisci l'ID dell'utente: "); scanf("%d", &variante->next->id);
variante->next->next= NULL;
variante = variante->next;
printf(" - Altro utente da inserire? - ");
scanf("%c",&ris);
}
printf("%d", testa->id);
printf("\n programma terminatao \n");
return 0;
}
al terminale ciò che ho è questo:
[Giovanni@gionet Programmi in C]$ gcc work.c
[Giovanni@gionet Programmi in C]$ ./a.out
Inserisci l'ID dell'utente: 34
- Altro utente da inserire? - Inserisci l'ID dell'utente: 44
- Altro utente da inserire? - Inserisci l'ID dell'utente:
come vedi, non mi fa inserire l'input alla domanda "Altro utente da inserire?" e quindi non potendo uscire dal ciclo..
il SO utilizzato è Fedora.. ho un problema di macchina?