为了账号安全,请及时绑定邮箱和手机立即绑定

求问这个回形遍历哪里有问题?我是想先环一圈,再去掉外圈,然后将剩下的一个新数组再次回绕着遍历,如果只剩一行或一列就只输出那一行(列),然后结束,如果没有剩下也结束。

#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;

}


正在回答

2 回答

要先赋值给j赋值

0 回复 有任何疑惑可以回复我~

scanf("%d%d",&row,col);这个col应该是&col,还有你的j使用的时候要先初始化

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求问这个回形遍历哪里有问题?我是想先环一圈,再去掉外圈,然后将剩下的一个新数组再次回绕着遍历,如果只剩一行或一列就只输出那一行(列),然后结束,如果没有剩下也结束。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信