这道题我写了两个小时,汗。看来对c的字符串输入输出不是很熟,最后还是用c++输入输出流解决的。题目意思也没有理解清楚,它每进一层可能停留也可能不停留,我刚开始理解的是进了就要停留,汗。
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int main() { int n, m, sum, ssum,x, y; char a[10]; scanf("%d",&n); getchar(); while(n--) { scanf("%d",&m); getchar(); sum =0, ssum = 0; y = 1; for(int i = 1; i <= m; i++) { cin >> a; if(strcmp(a,"IN") == 0) { y = y*20; continue; } else if(strcmp(a,"STAY")==0) { cin >> x; sum = x * 60 / y; } else if(strcmp(a,"OUT") == 0) { y = y / 20; //cout << y << ‘,‘; continue; } // cout << sum <<‘!‘; ssum += sum; } printf("%d\n",ssum); } system("pause"); return 0; }
原文:http://www.cnblogs.com/ekinzhang/p/4370090.html