#include #include using namespace std; void spos_rand(int*& p,int* mat,int m,int n){ int pi=(p-mat)/n; // (pi,pj) sono le coordinate int pj=(p-mat)%n; // dell'elemento a cui punta p cout << "p=(" << pi << "," << pj << ") "; int i=(int) ((float)m*rand()/(RAND_MAX+1.0)); int j=(int) ((float)n*rand()/(RAND_MAX+1.0)); cout << "spost=(" << i << "," << j << ") --->>> "; pi=(pi+i)%m; pj=(pj+j)%n; cout << "p=(" << pi << "," << pj << ")" << endl;; p=mat+pi*n+pj; (*p)++; } int main(){ int mat[10][8]; int *p=&mat[0][0]; for(int i=0;i<10;i++) for(int j=0;j<8;j++) mat[i][j]=0; srand(27546); for(int i=0;i<10;i++) spos_rand(p,&mat[0][0],10,8); for(int i=0;i<10;i++){ for(int j=0;j<8;j++) cout << mat[i][j] << " "; cout << endl; } return(0); }