跳格子
題目描述
逸夫樓的大廳的地面有10行10列的石磚,我們用坐標(x,y)來表示石磚的位置。如圖示:
?
一天lxl在逸夫樓大廳玩跳格子游戲,跳格子游戲有7個動作:1.向左轉,2向右轉,3向后轉,4向左跳一格,5向前跳一格,6向右跳一格,7向后跳一格。游戲前,lxl在(1,1)處并面向y軸正方向,他會做n次動作,若某個動作會讓lxl跳出逸夫樓大廳則原地不動,每一次動作后都需要你輸出lxl當前的位置。當n次動作都做完后,你還需要統計lxl到達過多少個格子。
輸入
第一行輸入n(0<n<101),表示lxl做的動作次數,接下來有n行,每行一個整數x(0<x<8)表示要做的動作。
輸出
每次動作后輸出lxl的當前坐標,一共有n行。隨后的第n+1行輸出lxl到達過的格子總數。
樣例輸入
7 5 4 1 7 3 2 6樣例輸出
(1,2) (1,2) (1,2) (2,2) (2,2) (2,2) (1,2) 3------------------------------------代碼--------------------------------------- #include<stdio.h> #include<string.h>int main(){int m,n,i,x=1,k,a,flag=1,y=1,count=0;scanf("%d",&k);int arr[102][102];for(i=1;i<102;i++){for(a=1;a<102;a++)arr[i][a]=0;}arr[1][1]=1;if(k>0&&k<101){for(i=1; i<=k; i++){m=x;n=y;scanf("%d",&a);if(a<8&&a>0){if(flag==1){if(a==1)flag=4;else if(a==2)flag=2;else if(a==3)flag=3;else if(a==4){if(x==1)x=1;elsex=x-1;}else if(a==5){if(y==10)y=10;elsey=y+1;}else if(a==6){if(x==10)x=10;elsex=x+1;}else if(a==7) {if(y==1)y=1;elsey=y-1;}}else if(flag==2){if(a==1)flag=1;else if(a==2)flag=3;else if(a==3)flag=4;else if(a==4){if(y==10)y=10;elsey+=1;}else if(a==5){if(x==10)x=10;elsex=x+1;}else if(a==6) {if(y==1)y=1;elsey-=1;}else if(a==7){if(x==1)x=1;elsex-=1;}}else if(flag==3){if(a==1)flag=2;else if(a==2)flag=4;else if(a==3)flag=1;else if(a==4){if(x==10)x=10;elsex=x+1;}else if(a==5){if(y==1)y=1;elsey=y-1;}else if(a==6){if(x==1)x=1;elsex=x-1;}else if(a==7){if(y==10)y=10;elsey=y+1;}}else if(flag==4){if(a==1)flag=3;else if(a==2)flag=1;else if(a==3)flag=2;else if(a==4){if(y==1)y=1;elsey=y-1;}else if(a==5) {if(x==1)x=1;elsex=x-1;}else if(a==6){if(y==10)y=10;elsey=y+1;}else if(a==7) {if(x==10)x=10;elsex=x+1;}}arr[x][y]=1;printf("(%d,%d)\n",x,y);}}}for(i=1;i<102;i++){for(a=1;a<102;a++){if(arr[i][a]==1)count++;}}printf("%d\n",count);return 0; }
?
轉載于:https://www.cnblogs.com/jxxclj/p/8627430.html
總結
- 上一篇: Arduino控制土壤湿度传感器
- 下一篇: day-9 字符串笔记