codice:#include<stdio.h> #include<stdlib.h> #include<time.h> int main(void){ int *pos = NULL, r=0, c=0, t=0; int i, j; printf("Inserisci il numero di colonne: "); scanf("%d", &c); printf("Inserisci il numero di righe: "); scanf("%d", &r); pos = (int *)calloc(r*c, sizeof(int)); srand48(time(0)); /***/ for(i=0; i<r; i++){ for(j=1; j<c; j++){ if(((double)lrand48()/RAND_MAX)>0.5){ (*(pos+c*i+j))=(*(pos+c*i+(j-1)))++; } else (*(pos+c*i+j))=(*(pos+c*i+(j-1)))--; } } /***/ for(i=0; i<r; j++){ for(j=0; j<c; i++){ printf("%d ", (*(pos+c*i+j))); } printf("\n"); } }
Per r=2, c=10:
-1 1 1 -1 1 1 -1 1 -1 0
-1 -1 -1 -1 -1 -1 1 1 1 0
Ciò che mi aspetto è, data la casualità, che gli elementi di questa matrice siano numeri interi, non necessariamente +-1.
Inoltre mi stampa l'ultima colonna sistematicamente nulla, cosa che dovrebbe accadere alla prima.