请高手注释下代码 谢谢 (急!!!)

来源:百度知道 编辑:UC知道 时间:2024/05/24 04:05:04
void Copy(int i1,int j1,int i2,int j2,int n){
for(int k1=0;k1<n;k1++){
for(int k2=0;k2<n;k2++){
a[i1+k1][j1+k2]=a[i2+k1][j2+k2];
}//for
}//for
}

void fun(int n,int k,int row,int col){

int m1=1;

for(int s=1;s<=k;s++){
n/=2;
for(int t=1;t<=n;t++)
for(int i=m1+1;i<=2*m1;i++)
for(int j=m1+1;j<=2*m1;j++){
a[i+row][j+(t-1)*m1*2+col]=a[i-m1+row][j+(t-1)*m1*2-m1+col];
a[i+row][j+(t-1)*m1*2-m1+col]=a[i-m1+row][j+(t-1)*m1*2+col];
}
m1*=2;
}//for
}

void Table(int m,int k){
//processing 2ek:
int n=1;int j;
for(int i=1;i<=k;i++) n*=2;
for(i=1;i<=n*m;i++) a[1][i]=i;
for(int l=0;l<m;l++)
fun(n,k,0,l*n);

void Copy(int i1,int j1,int i2,int j2,int n){
for(int k1=0;k1<n;k1++){
for(int k2=0;k2<n;k2++){

//应该外面定义了一个全局的int数组,你没写上
//这有什么解释的呢?,首先先循环外部for,初始k1=0,当k1等于传递过来的参数n
//的时候,停止循环
//每循环一次外部for的时候,内部for循环则循环n-k2次,直到达到k2=n的时候跳出这个内部循环

//赋值
a[i1+k1][j1+k2]=a[i2+k1][j2+k2];
}//for
}//for
}

void fun(int n,int k,int row,int col){

int m1=1;

for(int s=1;s<=k;s++){
//这句话可以这么说n=n+n/2;
n/=2;
//这是3个嵌套循环,
//运行原理是这样的,先运行1遍最外面的for循环,符合条件,然后运行中间的循环,
//如果符合条件再循环最里面的循环,最里面的循环是 循环2*mi-mi+1次,
for(int t=1;t<=n;t++)
for(int i=m1+1;i<=2*m1;i++)
for(int j=m1+1;j<=2*m1;j++){
//还是赋值
a[i+row][j+(t-1)*m1*2+col]=a[i-m1+row][j+(t-1)*m1*2-m1+col];
a[i+row][j+(t-1)*m1*2-m1+col]=a[i-m1+row][j