Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
老是说我Runtime Error,都不知道错在哪里,郁闷。#include <stdio.h> #include <string.h> #define maxsize 120 struct Instruction { int ID; char Dir; int rep; }; struct Robet { int ID; int i,j; char Dir; }; char ddir[4] = {'N','E','S','W'}; char GetDir(char InsDir,char CurDir) { int i; for(i=0;i<4;i++) if(CurDir == ddir[i]) break; if(InsDir == 'L') return ddir[(i-1+4)%4]; else if(InsDir == 'R') return ddir[(i+1)%4]; return CurDir; } int main() { int A,B,N,M; int times; int i,j; int rep; int ID; char d; int row,col; int type = 0; int lastID; int m,e; int Map[maxsize][maxsize]; struct Instruction Ins[maxsize]; struct Robet Hash[maxsize]; scanf("%d",×); while(times) { memset(Map,0,maxsize*maxsize*sizeof(int)); memset(Ins,0,maxsize*sizeof(Instruction)); memset(Hash,0,maxsize*sizeof(Robet)); scanf("%d %d",&A,&B); scanf("%d %d",&N,&M); type = 0; for(i=1;i<=N;i++) { scanf("%d %d %c",&Hash[i].i,&Hash[i].j,&Hash[i].Dir); Hash[i].i = B - Hash[i].i + 1; Hash[i].ID = i; Map[Hash[i].i][Hash[i].j] = i; } for(i=1;i<=M;i++) { scanf("%d %c %d",&Ins[i].ID,&Ins[i].Dir,&Ins[i].rep); } for(i=1;i<=M;i++) { ID = Ins[i].ID; d = Ins[i].Dir; rep = Ins[i].rep; row = Hash[ID].i; col = Hash[ID].j; if(Ins[i].Dir != 'F') { m = rep % 4; for( e=0;e<m;e++) { d = GetDir(Ins[i].Dir,Hash[ID].Dir); Hash[ID].Dir = d; } continue; } else { for(j=1;j<=rep;j++) { Map[row][col] = 0; switch(Hash[ID].Dir) { case 'E': col++;break; case 'W': col--;break; case 'N': row--;break; case 'S': row++;break; } if(row<1 || row > B || col <1 || col > A) { type = 1; break; } if(Map[row][col]!=0) { type = 2; lastID = Map[row][col]; break; } Map[row][col] = ID; Hash[ID].i = row; Hash[ID].j = col; }/*for rep*/ if(type!=0) break; }/*else if forward*/ }/*for exec ins */ if(type == 1) printf("Robot %d crashes into the wall\n",ID); else if(type == 2) printf("Robot %d crashes into robot %d\n",ID,lastID); else printf("OK\n"); times--; } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator