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

环形数组遍历,求大神指点哪里错了

#include<stdio.h>

int main(){

 int row,col;

 scanf("%d%d",&row,col);

 int a[100][100];

 int i,j;

 for(i=j=0;i<row;i++){

 for(;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;

}


正在回答

3 回答

#include<stdio.h>

int main(){

 int row,col;

 scanf("%d %d",&row,&col);

 int a[100][100];

 int i,j;

 for(i=j=0;i<row;i++){

 for(;j<col;j++){

 scanf("%d",&a[i][j]);

 }

 }


for(i=j=0;(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=j=0;i<row;i++){

        printf("%d\n",a[i][1]);

    }

    break;

}

 for(i=j=0;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;

}


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

第一个for循环i++后,到下一个for 循环没有将 i = 0;

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

qq_破浪当此时_0 提问者

抱歉,可以具体一点吗?我是想先环一圈,再去掉外圈,然后将剩下的一个新数组再次回绕着遍历,如果只剩一行或一列就只输出那一行(列),然后结束,如果没有剩下也结束。蟹蟹
2015-12-19 回复 有任何疑惑可以回复我~

//scanf("%d%d",&row,col);

  scanf("%d%d",&row,&col);


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

举报

0/150
提交
取消
C语言入门
  • 参与学习       924441    人
  • 解答问题       20757    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

环形数组遍历,求大神指点哪里错了

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