华中地区高校第七届ACM程序设计大赛——之字形矩阵【2012年5月27日】

 

题意:输入a b Right 或 a b Down ,根据输入输出之字形路径的矩阵。

 1 #include <stdio.h>
 2 int xx[4]={0,1,-1,1},yy[4]={1,0,1,-1};
 3 int map[100][100],col,row,x,y,dir,steps,idx;
 4 char sel[10];
 5 void nextdir()
 6 {
 7     switch(dir)
 8     {
 9     case 0:
10         dir=(x==0)?3:2;    break;
11     case 1:
12         dir=(y==0)?2:3;    break;
13     case 2:
14         if(x==0)        dir=0;
15         if(y==col-1)    dir=1;
16         break;
17     case 3:
18         if(y==0)        dir=1;
19         if(x==row-1)    dir=0;
20         break;
21     }
22 }
23 void print()
24 {
25     int i,j;
26     for (i=0;i<row;i++)
27     {
28         printf("%-3d",map[i][0]);
29         for (j=1;j<col;j++)        printf(" %-3d",map[i][j]);
30         printf("\n");
31     }
32 }
33 int main()
34 {
35 
36     while (scanf("%d%d%s",&row,&col,sel)!=EOF)
37     {
38         x=0;y=0;map[0][0]=0;steps=row*col;
39         dir=(sel[0]=='R')?0:1;
40         for (idx=1;idx<steps;idx++)
41         {
42             x+=xx[dir];y+=yy[dir];
43             map[x][y]=idx;
44             nextdir();
45         }
46         print();
47     }
48     return 0;
49 }

 

 

 

posted @ 2012-05-28 09:03  ZH奶酪  阅读(363)  评论(0编辑  收藏  举报