Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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: 1792
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
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: 1792
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.

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.

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.

PM Quote