Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicitÓ e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Problema esecuzione programmino in C
Forum - C/C++ - Problema esecuzione programmino in C

Avatar
GPULoad (Normal User)
Newbie


Messaggi: 14
Iscritto: 28/07/2011

Segnala al moderatore
Postato alle 14:41
Mercoledý, 03/08/2011
Ho appena iniziato con la programmazione in C e st˛ frequentando alcuni corsi, il mio problema sta in un programmino che ho fatto per allenarmi, il programma deve scrivere 10 numeri da 1 a 10, saltare il numero 5 e stampare a schermo: Il ciclo ha saltato il numero 5 ed ha continuato, ma appena lo avvio mi spuntano 10 righe con scritto quello sopra in grassetto. Il codice Ŕ questo:

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6.  
  7.   int x;
  8.  
  9.   for (x = 1; x <= 10; x++){
  10.      
  11.       if (x == 5){
  12.             continue;
  13.      
  14.       printf ("%d  ", x);
  15.      
  16.       }
  17.      
  18.       printf ("\n\nIl ciclo ha saltato il numero 5 ed ha continuato\n\n");
  19.  
  20. }
  21.  
  22.   system("PAUSE");     
  23.   return 0;
  24.  
  25. }



Cosa c'Ŕ che non vÓ? A me sembra tutto a posto.

Ultima modifica effettuata da GPULoad il 03/08/2011 alle 14:42
PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1787
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 14:57
Mercoledý, 03/08/2011
il ciclo contiene un'espressione logica (controlla se x Ŕ uguale a 5) che condiziona la stampa.

in italiano:

se x Ŕ uguale a 5 allora:
- stampa messaggio
- continua il ciclo
altrimenti:
- stampa x


in C:
Codice sorgente - presumibilmente C/C++

  1. if (x == 5)
  2. {
  3.   printf ("\n\nIl ciclo ha saltato il numero 5 ed ha continuato\n\n");
  4.   continue;
  5. }
  6. else
  7. {
  8.   printf ("%d  ", x);
  9. }



capito il ragionamento? ;-)

Ultima modifica effettuata da TheKaneB il 03/08/2011 alle 14:58


Software Failure: Guru Meditation
Forum su Informatica, Elettronica, Robotica e Tecnologia: http://www.nonsoloamiga.com
PM Quote
Avatar
GPULoad (Normal User)
Newbie


Messaggi: 14
Iscritto: 28/07/2011

Segnala al moderatore
Postato alle 15:22
Mercoledý, 03/08/2011
Ma se metti continue sotto printf non toglie il printf?

Comunque ho corretto come tu hai detto:

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6.  
  7.   int x;
  8.  
  9.   for (x = 1; x <= 10; x++){
  10.      
  11.           if (x == 5)
  12.     {
  13.       printf ("\n\nIl ciclo ha saltato il numero 5 ed ha continuato\n\n");
  14.       continue;
  15.     }
  16.     else
  17.     {
  18.       printf ("%d  ", x);
  19.     }
  20.    
  21.     system ("PAUSE");
  22.     return 0;
  23. }



Adesso non mi fa compilare perchŔ c'Ŕ un'errore di sintassi, pi¨ precisamente nella parentesi graffa dopo return.

Ultima modifica effettuata da GPULoad il 03/08/2011 alle 15:29
PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1787
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 15:27
Mercoledý, 03/08/2011
Testo quotato

Postato originariamente da GPULoad:

Ma se metti continue sotto printf non toglie il printf?



No, le istruzioni vengono eseguite in ordine.

Prima c'Ŕ printf, quindi stamperÓ una stringa, poi viene "continue" quindi ritornerÓ all'inizio del ciclo for, incrementando la x.


Software Failure: Guru Meditation
Forum su Informatica, Elettronica, Robotica e Tecnologia: http://www.nonsoloamiga.com
PM Quote
Avatar
GPULoad (Normal User)
Newbie


Messaggi: 14
Iscritto: 28/07/2011

Segnala al moderatore
Postato alle 15:32
Mercoledý, 03/08/2011
Ho editato il post sopra prima che tu scrivessi.

PM Quote
Avatar
Nullable (Normal User)
Expert


Messaggi: 217
Iscritto: 12/07/2011

Segnala al moderatore
Postato alle 15:41
Mercoledý, 03/08/2011
Testo quotato

Postato originariamente da GPULoad:

Ma se metti continue sotto printf non toglie il printf?



No perchŔ prima viene eseguita la printf() e poi il continue.

Testo quotato

Postato originariamente da GPULoad:Adesso non mi fa compilare perchŔ c'Ŕ un'errore di sintassi, pi¨ precisamente nella parentesi graffa dopo return.



Non hai chiuso la graffa del for.


Hai perso.
PM Quote
Avatar
GPULoad (Normal User)
Newbie


Messaggi: 14
Iscritto: 28/07/2011

Segnala al moderatore
Postato alle 18:49
Mercoledý, 03/08/2011
Testo quotato

Postato originariamente da Nullable:

Testo quotato

Postato originariamente da GPULoad:

Ma se metti continue sotto printf non toglie il printf?



No perchŔ prima viene eseguita la printf() e poi il continue.

Testo quotato

Postato originariamente da GPULoad:Adesso non mi fa compilare perchŔ c'Ŕ un'errore di sintassi, pi¨ precisamente nella parentesi graffa dopo return.



Non hai chiuso la graffa del for.



Mi autobanno, grazie :rotfl:

PM Quote
Avatar
Nullable (Normal User)
Expert


Messaggi: 217
Iscritto: 12/07/2011

Segnala al moderatore
Postato alle 19:32
Mercoledý, 03/08/2011
Testo quotato

Postato originariamente da GPULoad:

Mi autobanno, grazie :rotfl:



Non ti disperare, succede.


Hai perso.
PM Quote