Si consideri il seguente frammento di programma:
#define D 10 main() { int M[D],i; for(i=0; i < D; i++) M[i]=9*i; printf("Sequenza="); for(i=0; i < D; i++) if(M[i]%(i+1) == 0) printf(" %2d",M[i]/(i+1)); else printf(" %2d",M[i]%(i+1)); }Cosa viene visualizzato a video dall'esecuzione di main()?
Soluzione: Sequenza: 0 1 6 3 1 3 5 7 8 1.
Il primo for() carica in M[] i multipli di 9
0 9 18 27 36 45 54 63 72 81
Il secondo for() scorre M[] e visualizza il quoziente oppure il resto della divisione a seconda che il valore sia o meno divisibile per la sua posizione (con indice a partire da 1...)
i M[i] Divisione 0 0 0/1 =0 1 9 9/2 1 2 18 18/3 =6 3 27 27/4 3 4 36 36/5 1 5 45 45/6 3 6 54 54/7 5 7 63 63/8 =7 8 72 72/9 =8 9 81 81/10 1