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.