/* Use of pointers to iterate over a matrix as an linear array */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define N 10

int main(){
	int i,j;
	int matrix[N][N];
	int *p;
	srand(time(0));

	printf("Random matrix\n");
	for(i=0; i<N; i++)
		for(j=0; j<N; j++)
			matrix[i][j]=rand()%10;
	for(i=0; i<N; i++){
		for(j=0; j<N; j++)
			printf("%2d ", matrix[i][j]);
		printf("\n");
	}
	
	printf("Sequential matrix\n");
	p=&matrix[0][0];
	for(i=0; i<N*N; i++){
		*p=i;
		p++;
	}
	for(i=0; i<N; i++){
		for(j=0; j<N; j++)
			printf("%2d ", matrix[i][j]);
		printf("\n");
	}

	return 0;
}
