03/08/11 12:41
GPULoad
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:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int x;
for (x = 1; x <= 10; x++){
if (x == 5){
continue;
printf ("%d ", x);
}
printf ("\n\nIl ciclo ha saltato il numero 5 ed ha continuato\n\n");
}
system("PAUSE");
return 0;
}
Cosa c'è che non và? A me sembra tutto a posto.
Ultima modifica effettuata da GPULoad 03/08/11 12:42
aaa
03/08/11 12:57
TheKaneB
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:
if (x == 5)
{
printf ("\n\nIl ciclo ha saltato il numero 5 ed ha continuato\n\n");
continue;
}
else
{
printf ("%d ", x);
}
capito il ragionamento? ;-)
Ultima modifica effettuata da TheKaneB 03/08/11 12:58
aaa
03/08/11 13:22
GPULoad
Ma se metti continue sotto printf non toglie il printf?
Comunque ho corretto come tu hai detto:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int x;
for (x = 1; x <= 10; x++){
if (x == 5)
{
printf ("\n\nIl ciclo ha saltato il numero 5 ed ha continuato\n\n");
continue;
}
else
{
printf ("%d ", x);
}
system ("PAUSE");
return 0;
}
Adesso non mi fa compilare perchè c'è un'errore di sintassi, più precisamente nella parentesi graffa dopo return.
Ultima modifica effettuata da GPULoad 03/08/11 13:29
aaa
03/08/11 13:32
GPULoad
Ho editato il post sopra prima che tu scrivessi.
aaa