Visualizzazione dei risultati da 1 a 10 su 24

Visualizzazione discussione

  1. #1

    [C] Stampare una lista concatenata

    Ho creato questo programma, ma purtroppo non mi stampa la lista, sicuramente sbaglio qualcosa nel caricamento della lista (credo si sovrascrivano gli elementi)..
    Questo è l'algoritmo..
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    struct elemento{
     int valore;
     struct elemento *next;
    };
    void menu();
    void insElemento();
    void delElemento();
    void ordLista();
    int main(){
     int comando;
     menu();
     printf("\nComando:\t");
     scanf("%d", &comando);
     switch(comando){
      case 1:{
       insElemento();
       break;
      }
      case 2:{
       delElemento();
       break;
      }
      case 3:{
       ordLista();
       break;
      }
     }
     return 0; 
    }
    void menu(){
     printf("--------------------------");
     printf("\n1 - Inserisci Elemento\n");
     printf("2 - Cancella Elemento\n");
     printf("3 - Ordinamento Lista\n");
     printf("--------------------------");
    }
    void insElemento(){
        struct elemento *list_pointer, *list_head, *list_record;
        int i, n=0, val, newval;
     printf("Specificare il numero di elementi della lista:  ");
     scanf("%d", &n);
     //Inserimento del primo elemento
        list_record = (struct elemento *)malloc(sizeof(struct elemento));
        printf("\nInserisci il 1 elemento: ");
        scanf("%d", &val);
     list_record->valore = val;
     list_head=list_record;
     list_pointer = list_head;
     //Inserimento degli elementi successivi
     for(i=2; i<=n; i++)
           {
              list_record->next = (struct elemento *)malloc(sizeof(struct elemento));
              list_record = list_record->next;
              printf("\nInserisci il %d elemento: ", i);
              scanf("%d", &newval);
              list_record->valore = newval;
              list_head=list_record;
        list_pointer = list_head;
           } 
           list_record->next = NULL;
      //Stampa della lista
     printf("\nlista -> ");
     while(list_record != NULL){
        printf("%d", list_record->valore); // visualizza l’informazione 
           printf(" -> ");
           list_record = list_record->next; //scorre di un elemento
        }
     printf(" NULL"); 
        } 
     void delElemento(){
      int del;
      printf("Work in Progress");
      
     }
     void ordLista(){
      printf("Work in Progress");
     }

    Quindi ricapitolando, il problema sta nell'impossibilità di stampare la lista COMPLETA (stampa l'ultimo elemento inserito), per eventuali errori nell'inserimento.
    Avete qualche idea di dove possa stare il problema?
    Grazie in anticipo
    Ultima modifica di Ronald940; 18-06-2014 a 20:36

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.