问答详情
源自:-

请大神帮我看看这个程序。。。

http://img.mukewang.com/5659ceef0001e7b853122988.jpg第9题

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <stdbool.h>

int main()
{
 bool m[10][10]={false};
 bool n[10][10]={false};
 char a[10][10];
 char x[25]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
 int i,k,b,c,d=0,e=0,f=0,g,h,j,l;
 for(i=0;i<10;i++)
 {

  for(k=0;k<10;k++)
  {
   (a[i][k]='.');
  }
 }
 srand((unsigned) time(NULL));
 (a[e][f]='A');
 (m[e][f]=true);
 
 for(b=0;b<26;b++)
 {
  
  d++;
  (c=rand()%4);
 
  switch(c)
  {
   case 0:
   if(m[e][f-1])
   {n[e][f-1]=true;
   break;}
   (a[e][f-1]=x[d]);
   g=e;
   h=f-1;
   m[g][h]=true;
   break;
   
   case 1:
   if(m[e-1][f])
   {n[e-1][f]=true;
   break;}
   (a[e-1][f]=x[d]);
   g=e-1;
   h=f;
   m[g][h]=true;
   break;
   
   case 2:
   if(m[e][f+1])
   {n[e][f+1]=true;
   break;}
   (a[e][f+1]=x[d]);
   g=e;
   h=f+1;
   a[g][h]=true;
   break;
   
   case 3:
   if(m[e+1][f])
   {n[e+1][f]=true;
   break;}
   (a[e+1][f]=x[d]);
   g=e+1;
   h=f;
   m[g][h]=true;
   break;
   
  
   
  }
  
  e=g;
  f=h;
   
   if (g<0||h<0||g>9||h>9)
   break;
   if(n[g][h])
   break;
    }
   for(j=0;j<10;j++)
  {
   for(l=0;l<10;l++)
   printf("%c ",a[j][l]);
    printf("\n");
   
  
   
  }
 
 

 return 0;
}

提问者:Axe 2015-11-28 23:58

个回答

  • 流浪_老
    2015-11-29 23:19:55

    好长- -

  • Axe
    2015-11-29 00:03:23

    我是新手, 不太懂, 请指教。。。

  • Axe
    2015-11-29 00:00:30

    第九题      哪儿错了    有时候会直接跳过几个字母 还会输出一个笑脸