Secondo te? Cosa comprendi di quel codice?
Per comodità te l'ho riscritto qui, formattato ed eliminando inutili distrazioni (in particolare ho mosso la dichiarazione delle variabili dei cicli nel ciclo stesso, ho eliminato
M
perché non veniva utilizzata, ho dichiarato
s
come intero perché assume solo i valori \(\displaystyle 1 \) e \(\displaystyle -1 \), ho toldo il
return 0;
perché è implicito e aggiunto il
void
nel main perché più esplicito ).
- Codice:
#include <stdio.h>
int main(void)
{
int s = 1;
for (int i = 0; i < 4; i++)
{
s = -s;
for (int j = 0; j < 4; j++)
{
if (s > 0)
{
printf(" %d %d\n", i, j);
}
}
}
}
Quello che intendevo prima è che il codice precedente è equivalente a:
- Codice:
#include <stdio.h>
int main(void)
{
int s = 1;
for (int i = 0; i < 4; i++)
{
s = -s;
if (s > 0)
{
for (int j = 0; j < 4; j++)
{
printf(" %d %d\n", i, j);
}
}
}
}}
o anche a
- Codice:
#include <stdio.h>
int main(void)
{
int s = 1;
for (int i = 0; i < 4; i++)
{
s = -s;
if (s == 1)
{
for (int j = 0; j < 4; j++)
{
printf(" %d %d\n", i, j);
}
}
}
}
Cosa succederebbe se invece avessi il seguente?
- Codice:
#include <stdio.h>
int main(void)
{
int s = 1;
for (int i = 0; i < 4; i++)
{
if (s == 1)
{
for (int j = 0; j < 4; j++)
{
printf(" %d %d\n", i, j);
}
}
s = -s;
}
}
Ovviamente esiste un codice equivalente che non necessita della variabile
s
. Ti invito a cercarlo.