特级水题,按着他做就行了。 #include <cstdio> #include <cstring> using namespace std; const int MAX = 101; typedef struct _String { char url[71]; }String; String backstack[MAX],forwardstack[MAX]; int backstacki,forwardstacki; String cur; int main() { char inputbuffer[1024]; backstacki = forwardstacki = 0; strcpy(cur.url,"http://www.acm.org/"); while( scanf("%s",inputbuffer) ) { switch(inputbuffer[0]) { case 'V': backstack[ backstacki++ ] = cur; forwardstacki = 0 ; scanf("%s",cur.url); printf("%s/n",cur.url ); break; case 'B': if( backstacki != 0 ) { forwardstack[ forwardstacki++ ] = cur; cur = backstack[ --backstacki ]; printf("%s/n",cur.url); } else printf("Ignored/n"); break; case 'F': if( forwardstacki != 0 ) { backstack[ backstacki++ ] = cur; cur = forwardstack[ --forwardstacki ]; printf("%s/n",cur.url ); } else printf("Ignored/n"); break; case 'Q': return 0; } } return 0; }