PDA

Visualizza la versione completa : [C] un errore che non trovo!


danger2001
11-07-2004, 16:11
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
:ciauz:

Johnny_Depp
11-07-2004, 16:27
#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/showthread.php?s=&threadid=588640

danger2001
12-07-2004, 09:09
Grazie dell'aiuto! :)
la prossima volta starò più attento
:ciauz:

Loading