30/09/2018, 19:37
Cấu trúc dữ liệu và giải thuật - Hỏi cách máy tính chạy bài mã đi tuần
Các ban cho mình hỏi cách chạy bài toán mã đi tuần
Đây là Code C trong sách Giáo Trình trường mình :
include <stdio.h>
include <conio.h>
void ThuNuocTiepTheo(int i, int x, int y, int *q) ;
void InBanCo(int n );
void XoaBanCo(int n);
int BanCo[10][10] ;
int dx[8]={2,1,-1,-2,-2,-1,1,2} ;
int dy[8]={-1,-2,-2,-1,1,2,2,1} ;
int n=8 ;
void ThuNuocTiepTheo (int i, int x, int y, int *q){
int k, u, v, q1;
k=0;
do{
*q1=0 ;
u=x+dx[k];
v=y+dy[k];
if( (u>=0) && (u < n) && (v >=0) && (v < n) ) && (BanCo[u][v]==0)
{
BanCo[u][v]=i;
if (i < n*n)
{
ThuNuocTiepTheo( i+1, u, v, q1);
if( (*q1) == 0){
BanCo[u][v] = 0 ; }
}else (*q1 = 1)
} k++;
}while( ((*q1) == 0 && (k<8) );
void InBanCo(int n){
int i ;
int j ;
for(i=0; i<n-1; i++){
for((j=0; j<n-1; j++)
if(BanCo[i][j]<10) printf("%d ",BanCo[i][j] );
else printf(" %d ",BanCo[i][j]);
printf("
");
}
}
void XoaBanCo(int n){
int i ;
int j ;
for(i=0; i<n-1; i++)
for((j=0; j<n-1; j++) BanCo[i][j] = 0;
}
void main(){
int *q=0;
clrscr() ;
printf("cho kich thuoc ban co ");
scanf("%d ", n );
XoaBanCo(n);
BanCo[0][0]=1;
ThuNuocTiepTheo(2,0,0,q);
InBanCo(n);
getch();
return ;
}
Khởi tạo ban đầu với vị trí (0, 0) sau đó nó chạy đến ô nào nữa ? và cách máy tính chạy các dòng code trên cụ thể là như thế nào ? chạy dòng nào trước dòng nào sau ?
Rất mong các bạn giải đáp
Bài liên quan
Bạn code j mà sai tùm lum vậy :3
Thanh niên là D14 CN hay AT,DT??