Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    1

    [C] Inserire in lista valori letti da tastiera e stamparli

    Salve, ho una traccia che mi dice di inserire da tastiera un numero(tra 1 e 9), convertirlo in stringa, e inserirlo poi in una lista e stampare.

    codice:
    #include<stdio.h>
    #include<string.h>
    #include<malloc.h>
    
    
    struct Nodo {
        char *str;
        struct Nodo *link;
    };
    
    
    struct Nodo *Lista=0;
    
    
    void Inserisci(char *);
    void Stampa();
    char * Converti(int );
    
    
    int main(){
    
    
        int num;
        char *buffer;
    
    
        printf("inserisci numero: ");
        scanf("%d", &num);
        if(num>0 && num<10){
            buffer=Converti(num);
            Inserisci(buffer);
            Stampa();
        }
        else
            printf("Errore");
    
    
    return 0;
    }
    
    
    void Inserisci(char *buf){
    
    
        struct Nodo *p=(struct Nodo *)malloc(sizeof(struct Nodo));
        p->str=(char *)malloc((strlen(buf)+1)*sizeof(char));
        strcpy(p->str, buf);
        p->link=Lista;
        Lista=p;
    }
    
    
    char *Converti(int n) {
    
    
        char *buf;
    
    
            if(n==1)
                strcpy(buf, "Uno");
            else if(n==2)
                strcpy(buf, "Due");
            else if(n==3)
                strcpy(buf, "Tre");
            else if(n==4)
                strcpy(buf, "Quattro");
            else if(n==5)
                strcpy(buf, "Cinque");
            else if(n==6)
                strcpy(buf, "Sei");
            else if(n==7)
                strcpy(buf, "Sette");
            else if(n==8)
                strcpy(buf, "Otto");
            else
                strcpy(buf, "Nove");
    
    
        return (buf);
    }
    
    
    void Stampa(){
    
    
        struct Nodo *cur=Lista;
    
    
        while(cur){
                printf("\n");
                printf("%s", cur->str);
                cur=cur->link;
        }
    
    
    }
    Quali sono gli errori nel codice? Perché non va
    Ultima modifica di LeleFT; 13-09-2016 a 13:26 Motivo: Aggiunti i tag CODE

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Usa i tag code per il codice altrimenti non si capisce nulla.

    E indica in dettaglio che vuoi dire con "non va" ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Partiamo dal Regolamento interno, in evidenza.
    1) Il titolo: deve dare una descrizione sommaria del problema trattato nella discussione. Il titolo "Linguaggio C" non dice assolutamente nulla, se non che è applicabile al 90% delle discussioni presenti nel forum. Lo correggo io.

    2) Il codice va postato all'interno degli appositi tag CODE per garantirne formattazione e indentazione. Anche questo lo correggo io.

    3) Sei tu che devi dire quali errori ti dà il programma (in compilazione o in esecuzione), non puoi pretendere che siano gli altri a copiarsi il tuo codice, provare a compilarselo ed eseguirselo per scoprire quale problema hai incontrato: tu lo sai già quale problema hai incontrato e devi dirlo.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Comunque, con il codice indentato e ordinato, ho notato che nella Converti non allochi memoria per il buffer, ovviamente con conseguenti errori.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.