PDA

Visualizza la versione completa : [C] if nidificato in un for


ant_alt
21-11-2005, 18:30
#include<stdio.h>

int main ()

{
int conto;

for (conto=1;conto<=100;conto++)
{
printf("*\n");
if (conto % 10 = 0)
printf("\n\n");
}
return 0;
}

voglio k stampi 100 asterischi su 100 righe e ogni dieci stampi due newline... :cry:

king64
21-11-2005, 19:12
#include<stdio.h>

int main ()
{
int cn1,cn2;

for (cn1=1;cn1<=100;cn1++)
{
for (cn2=1;cn2<=100;cn2++)
{
printf("*");
}
if (cn1 % 10 == 0)
printf("\n\n");
else
printf("\n");
}
return 0;
}

ibykos
21-11-2005, 19:16
Hai notato che nel tuo if hai usato l'operatore "assegnazione" (cioè "=" singolo uguale) al posto dell'operatore "confronto" ( cioè "==" doppio uguale)?
In presenza di un errore simile la condizione all'interno dell'if è sempre verificata.
Se non sbaglio (non ho il compilatore sottomano) il tuo programma stamperebbe un asterisco e due linee vuote ogni ciclo.
Prova a sostituire l'operatore ed il codice che hai scritto dovrebbe funzionare.

murder eyes
25-11-2005, 03:14
[QUOTE]Originariamente inviato da ant_alt

#include<stdio.h>

int main ()

{
int conto;
for (conto=1;conto<=100;conto++)
{
printf("*\n");
if (conto % 10 == 0) //era qui l'errore = invece di ==
printf("\n\n");
}
return 0;
}

LeleFT
25-11-2005, 14:56
Originariamente inviato da ibykos
Hai notato che nel tuo if hai usato l'operatore "assegnazione" (cioè "=" singolo uguale) al posto dell'operatore "confronto" ( cioè "==" doppio uguale)?
In presenza di un errore simile la condizione all'interno dell'if è sempre verificata.
Se non sbaglio (non ho il compilatore sottomano) il tuo programma stamperebbe un asterisco e due linee vuote ogni ciclo.
Prova a sostituire l'operatore ed il codice che hai scritto dovrebbe funzionare.
Se compilasse allora sarebbe il contrario: la condizione sarebbe sempre falsa e non stamperebbe mai i due ritorni a capo... ma non compila nemmeno: non si può assegnare un valore ad un'espressione.


Ciao. :ciauz:

apax83
25-11-2005, 21:46
Originariamente inviato da ant_alt

#include<stdio.h>

int main ()

{
int conto;

for (conto=1;conto<=100;conto++)
{
printf("*\n");
if (conto % 10 = 0)
printf("\n\n");
}
return 0;
}

voglio k stampi 100 asterischi su 100 righe e ogni dieci stampi due newline... :cry:

Il seguente programma dovrebbe risolvere il problema se ho ben capito quale sia...fammi sapere se è soddisfacente




#include <stdio.h>


int main ()
{

int j=1;
for(int i=1;i<=100;i++){
printf("*\n");
if (j==10){
j=0;
printf("\n\n");
}
j++;

}



return 0;


}

king64
25-11-2005, 22:33
Non se se ho afferrato la questione , ma i vostri programmi stampano solo 100 asterischi , e inoltre stampano un new line ogni asterisco . Che abbia interpretato male il problema ? :confused:

apax83
25-11-2005, 23:01
Originariamente inviato da king64
Non se se ho afferrato la questione , ma i vostri programmi stampano solo 100 asterischi , e inoltre stampano un new line ogni asterisco . Che abbia interpretato male il problema ? :confused:



Beh sinceramente non so cosa dirti....il mio programma è il frutto di quello che ho capito del problema proposto...sarà anche che mi sbaglio ma secondo me fa ciò che è stato chiesto....
tu cosa hai capito?

Loading