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

    un errore che non trovo!

    ciao.
    Essendo alle prime armi nel linguaggio C, ieri ho provato a creare un programma semplice appunto in questo linguaggio. il codice sorgente è questo:

    #include <stdio.h>
    #include <math.h>
    #include <string.h>


    #ifndef SISTEMA
    #define SISTEMA 0
    #endif

    #if SISTEMA==0
    char* pulisci = "cls";
    #elif SISTEMA==1
    char* pulisci = "clear";
    #endif

    int main()
    {
    int scelta;

    for ( ; ; )
    {

    system(pulisci);
    printf (" #######################\n");
    printf (" # michele #\n");
    printf (" #######################\n\n");
    printf (" 1) Sei gianfranco?\n\n");
    printf (" 2) Sei antonio?\n\n");
    printf (" 3) Sei mchele?\n\n");
    printf (" 0) ESCI\n\n\n\n");
    printf (" la tua scelta > ");


    scanf ("%i", &scelta);
    scelta = (int)scelta;

    if (scelta == 0) // ESCO DAL PROGRAMMA

    system(pulisci); // PULISCE LO SCHERMO
    printf ("--------------------------------------\n");
    printf (" Htttp://web.rossoalice.it/danger2001\n");
    printf (" Programma creato da Michele Carella\n");
    printf (" danger2001@aliceposta.it");
    printf (" michele_carella@hotmail.com\n");
    printf ("--------------------------------------\n\n");
    break;
    }

    }
    else if (scelta == 1)
    printf ("ciao gianfranco/n")
    system(pulisci)
    {

    }
    else if (scelta == 2)
    printf ("ciao antonio")
    {



    }
    else if (scelta == 3)
    printf ("ciao michele")
    {


    }

    }

    }

    l'ho compilato con DEV-C++ ma mi da un errore che non riesco a risolvero alla linea 52.

    Grazie per l'attenzione
    Michele

  2. #2
    codice:
    #include <stdio.h>      /* gli altri header (in questo caso) non servono */
    
    
    
    #ifndef SISTEMA 
    #define SISTEMA 0 
    #endif 
    
    
    #if SISTEMA==0 
    char* pulisci = "cls"; 
    #elif SISTEMA==1 
    char* pulisci = "clear"; 
    #endif 
    
    
    int main() 
    { 
        char scelta;       /* è preferibile utilizzare una variabile di tipo char (visto che la tastiera è composta da "caratteri" e non da numeri) */
    
        for ( ; ; ) 
        { 
            system(pulisci); 
            printf (" #######################\n"); 
            printf (" #        michele      #\n"); 
            printf (" #######################\n\n"); 
            printf (" 1) Sei gianfranco?\n\n"); 
            printf (" 2) Sei antonio?\n\n"); 
            printf (" 3) Sei michele?\n\n"); 
            printf (" 0) ESCI\n\n\n\n"); 
            printf (" la tua scelta > "); 
    
            scelta = getchar();     /* in questo caso è meglio usare getchar()... al posto di scanf() */ 
    
            if (scelta == '0')      /* '0' è un carattere non più un numero (stessa cosa dicesi per: '1', '2' e '3') */ 
            {
                system(pulisci); // PULISCE LO SCHERMO 
                printf ("--------------------------------------\n"); 
                printf (" Htttp://web.rossoalice.it/danger2001\n"); 
                printf (" Programma creato da Michele Carella\n"); 
                printf (" danger2001@aliceposta.it"); 
                printf (" michele_carella@hotmail.com\n"); 
                printf ("--------------------------------------\n\n"); 
                system("pause");
                break; 
            } 
            else if (scelta == '1')               /* se devi inserire una sola istruzione, le parentesi (blocco {}) graffe non servono */
                printf ("ciao gianfranco\n");      
            
            else if (scelta == '2')               /* una sola istruzione... niente graffe */
                printf ("ciao antonio\n"); 
     
            else if (scelta == '3')               /* come sopra */  
                printf ("ciao michele\n");
                
            else                                  /* idem */ 
                printf ("scelta errata!\n");      
        
        
            while(getchar() != '\n');             /* pulisco il buffer */
            getchar();                            /* attendo la pressione di un tasto, prima di proseguire */
        
        } /* qua chiudo il ciclo infinito - FOR - */
    
        
        return 0;
    }
    riguardati i cicli condizionali (if - else if - else)
    c'erano troppe parentesi graffe (messe a caso)
    e qualche errore di distrazione: non avevi chiuso alcune istruzioni ( -> ; )

    p.s. per cercare di capire (e di far capire) meglio
    il tuo codice, la prossima volta utilizza i tag [CODE ] e [/CODE ]

    inserendo il codice tra questi due tag (n.b. senza l'aggiunta di spazi) il tuo codice verrà formattato/indentato... e sarà più leggibile.

    Visto che sei nuovo, leggi anche il regolamento del forum: nel titolo
    va specificato anche il linguaggio che si sta utilizzando (questa volta lo aggiungo io)

    il regolamento lo trovi qua: http://forum.html.it/forum/showthrea...hreadid=588640
    ...Terrible warlords, good warlords, and an english song

  3. #3

    Grazie

    Grazie dell'aiuto!
    la prossima volta starò più attento
    Michele

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.