题意:输入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 }