Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C] Invertire l'ordine di un array in una lista

    Scrivere una funzione f (e main per chiamarla) che riceve un array di 5 interi e alloca una lista di 5 elementi contenente gli elementi dell’array in ordine inverso.

    il mio codice è questo ma mi da come errore che non ho inizializzato la variabile locale listak

    codice:
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    
    typedef struct elemento {
        int inf;
        struct elemento * pun;
    } elemento_lista;
    
    typedef elemento_lista *lista;
    
    lista InsInTesta(lista listak, int elem);
    void VisualizzaLista(lista listak);
    
    int main()
    {
        int array[5];
        int i = 0;
        
        lista listak;
        
        for (i = 0; i < 5; i++)
        {
            printf("Inserisci l'elemento\n");
            scanf_s("%d", &array[i]);
        }
    
        listak->inf = array[0];
        listak->pun = NULL;
        for (i = 1; i < 5; i++)
        {
            listak = InsInTesta(listak, array[i]);
        }
    
        VisualizzaLista(listak);
    
    
        _getch();
        return 0;
    }
    
    lista InsInTesta(lista listak, int elem) {
        lista punt;
        punt = (lista)malloc(sizeof(elemento));
        punt->inf = elem;
        punt->pun = listak;
        return  punt;
    }
    
    void VisualizzaLista(lista listak) {
        if (listak == NULL)
            printf(" ---| \n");
        else {
            printf(" %d\n ---> ", listak->inf);
            VisualizzaLista(listak->pun);
        }
    }

  2. #2
    risolto
    dovevo semplicemente inizializzare la lista listak=NULL

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.