解题思路:
注意事项:不知道为什么在这里会报运行错误。我在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语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:734 |
C语言程序设计教程(第三版)课后习题1.6 (C++代码)浏览:902 |
数组输出 (C语言代码)错误???浏览:565 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:377 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:937 |
1050题解(结构体数组与结构体指针的使用)浏览:1108 |
演讲大赛评分 (C语言代码)浏览:1636 |
钟神赛车 (C语言代码)浏览:598 |
1134题解(求分析)浏览:729 |
小O的数字 (C语言代码)浏览:1411 |