解题思路:
注意事项:不知道为什么在这里会报运行错误。我在VC6.0里面运行完全问题。
参考代码:
#include<stdio.h>
#include<stdlib.h>
struct zhiz
{
int x,y;
int fx;
};
struct juz
{
int data;
int bl;
};
void main()
{
int n,m,nb,mb;
int i,j;
int budong=0;
struct juz ** juzheng;
struct zhiz zz;
zz.fx=180; zz.x=0; zz.y=0;
scanf("%d%d",&n,&m);
juzheng=(struct juz *)malloc(sizeof(struct juz *)*n);
for(i=0;i<m;i++)
juzheng[i]=(struct juz *)malloc(sizeof(struct juz)*m);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%d",&juzheng[i][j].data);
juzheng[i][j].bl=1;
}
}
while(budong<5)
{
if(juzheng[zz.x][zz.y].bl==1)
{
if(budong!=0)
{printf(" ");}
printf("%d",juzheng[zz.x][zz.y].data);//就是这行导致运行错误
juzheng[zz.x][zz.y].bl=0;
}
else{budong++;}
switch(zz.fx)
{
case 0:if(zz.x>0 && juzheng[zz.x-1][zz.y].bl==1){zz.x-=1; budong=1;}else{zz.fx=90;} break;
case 90:if(zz.y>0 && juzheng[zz.x][zz.y-1].bl==1){zz.y-=1;budong=1;}else{zz.fx=180;} break;
case 180: if(zz.x<(n-1) &&juzheng[zz.x+1][zz.y].bl==1){zz.x+=1;budong=1;}else{zz.fx=270;} break;
case 270: if(zz.y<(m-1) && juzheng[zz.x][zz.y+1].bl==1){zz.y+=1;budong=1;}else{zz.fx=0;} break;
}
}
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复