2011 – 3

È dato il seguente programma:

#include 
#define nrig 5
#define ncol 5

int i, j,
    m[nrig][ncol];

main() 
{
   	for(i=0; i < nrig; i++)
   	for(j=0; j < ncol; j++)
    	m[i][j]=i*j+j;

   	for(j=ncol-1; j >= 0; j--) 
	{
		for(i=nrig-1; i >= 0; i--)
			printf("%d ", m[i][j]);
		printf("\n");
	}
}

Cosa viene visualizzato a video dall’esecuzione di main()?

  1. 20 16 12 8 4
    15 12 9 6 3
    10 8 6 4 2
    5 4 3 2 1
    0 0 0 0 0
  2. 0 0 0 0 0
    1 2 3 4 5
    2 4 6 8 10
    3 6 9 12 15
    4 8 12 16 20
  3. 4 8 12 16 20
    3 6 9 12 15
    2 4 6 8 10
    1 2 3 4 5
    0 0 0 0 0
  4. 0 0 0 0 0
    1 1 1 1 1
    2 2 2 2 2
    3 3 3 3 3
    4 4 4 4 4

Soluzione: a


Dopo il primo doppio for()

0 1 2 3 4
0 2 4 6 8
0 3 6 9 12
0 4 8 12 16
0 5 10 15 20

Il secondo doppio for() visualizza la matrice per colonne e con gli indici decrescenti…

20 16 12 8 4
15 12 9 6 3