Ti faccio l'esempio monodimensionale (il programma simula un certo tipo di moto in più dimensioni).
Questo è quello che viene fatto di norma:
codice:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void){
int pos = 0;
int i, seed;
seed=time(0);
for(i=0; i<10; i++){
if(((double)lrand48()/RAND_MAX)<0.5) pos += 1;
else pos -= 1;
printf("%d %d\n", i, pos);
}
}
Il problema sorge quando passo agli array (analogo per più dimensioni):
codice:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void){
int pos[10] = {0};
int i, seed;
seed=time(0);
for(i=1; i<10; i++){
if(((double)lrand48()/RAND_MAX)<0.5) (*(pos+i)) = (*(pos+(i-1)))++;
else (*(pos+i)) = (*(pos+(i-1)))--;
printf("%d %d\n", i, pos[i]);
}
}
Sono stato chiaro?