调试代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_ROWS 10
#define MAX_COLS 10
void main(void){
int k,step;
int i,j;
int ibug,jbug;
int temp,t1=0;
int imove[8],jmove[8];
int map[MAX_ROWS][MAX_COLS];
ibug=MAX_ROWS/2;
jbug=MAX_COLS/2;
step=0;
imove[0]=-1;jmove[0]=1;
imove[1]=0; jmove[1]=1;
imove[2]=1; jmove[2]=1;
imove[3]=1; jmove[3]=0;
imove[4]=1; jmove[4]=-1;
imove[5]=0; jmove[5]=-1;
imove[6]=-1;jmove[6]=-1;
imove[7]=-1;jmove[7]=0;
for(i=0;i<MAX_ROWS;i++)
for(j=0;j<MAX_COLS;j++)
map[i][j]=0;
srand((unsigned)time(NULL));
do{
temp=0;
k=rand()%8;
ibug+=imove[k];
jbug+=jmove[k];
if(ibug<0 || ibug>=MAX_ROWS){
ibug-=imove[k];
continue;
}
if(jbug<0 || jbug>=MAX_COLS){
jbug-=jmove[k];
continue;
}
map[ibug][jbug]=1;
printf("map[%d][%d]=%d ",ibug,jbug,map[ibug][jbug]);
step++;
for(i=0;i<MAX_ROWS;i++)
for(j=0;j<MAX_COLS;j++)
if(map[i][j]==1)
temp++;
printf("the step is:%d temp is:%d\n\n",step,temp);
}while(temp!=MAX_ROWS*MAX_COLS);
printf("the step is:%d;temp is:%d\n",step,temp);
for(i=0;i<MAX_ROWS;i++)
for(j=0;j<MAX_COLS;j++){
printf("%d ",map[i][j]);
}
}