求问这个回形遍历哪里有问题?我是想先环一圈,再去掉外圈,然后将剩下的一个新数组再次回绕着遍历,如果只剩一行或一列就只输出那一行(列),然后结束,如果没有剩下也结束。
#include<stdio.h>
int main(){
int row,col;
scanf("%d%d",&row,col);
int a[100][100];
int i,j;
for(i=0;i<row;i++){
for(j=0;j<col;j++){
scanf("%d",&a[i][j]);
}
}
for(;(i<row-1)&&(j<col-1);i++,j++){
if(row==1){
for(;j<col;j++){
printf("%d\n",a[1][j]);
}
break;
}
if(col==1){
for(;i<row;i++){
printf("%d\n",a[i][1]);
}
break;
}
for(;j<col;j++){
printf("%d\n",a[i][j]);
}
for(j=col-1,i=1;i<row;i++){
printf("%d\n",a[i][j]);
}
for(j=col-2,i=row-1;j>=0;j--){
printf("%d\n",a[i][j]);
}
for(i=row-2,j=0;i>0;i--){
printf("%d\n",a[i][j]);
}
a[i][j]=a[i+1][j+1];
row-=2;
col-=2;
if(row==0||col==0)break;
}
return 0;
}