40分求助!!!!!悬立关

P5587 打字练习

@[xinlong](/user/867904) 将 ```cpp i++; getline(cin,a[i]); ``` 放到后面,即 ```cpp a[i] = w; i++; getline(cin,a[i]); ```
by cyx13579 @ 2023-08-05 12:30:44


@[xinlong](/user/867904) 另外R君也可能会提前输入 "EOF",要判断一下,如果提前结束,要退出循环
by cyx13579 @ 2023-08-05 12:33:07


@[cyx13579](/user/233220) 你好!! 感谢你的帮助。 可是wa了第三个点(⊙﹏⊙): ```cpp #include <bits/stdc++.h> using namespace std; string a[10010]; double pd(string x,string y){ string w; for (int i = 0 ; i < x.size() ; i ++){ if(x[i] == '<'){ if(w.size()>0){ w.erase(w.begin()+w.size()-1,w.begin()+w.size()); } }else{ w+=x[i]; } } int ans = 0; for (int i = 0 ; i < min(w.size(),y.size()) ; i ++){ if(w[i] == y[i]){ ans ++; } } return ans; } int main(){ //cout << pd("hello world.","heelo world."); //* int i = 1; getline(cin,a[i]); while(a[i] != "EOF"){ string w; for (int j = 0 ; j < a[i].size() ; j ++){ if(a[i][j] == '<'){ if(w.size()>0){ w.erase(w.begin()+w.size()-1,w.begin()+w.size()); } }else{ w+=a[i][j]; } } a[i] = w; i++; getline(cin,a[i]); } string s; double d = 0; bool flag = 0; for (int j = 1 ; j < i ; j ++){ getline(cin,s); if(s == "EOF"){ flag = 1; } if(!flag){ d+=pd(s,a[j]); } //cout << pd(s,a[j]) << endl;//<<' '<< s << '*'<< a[j] << endl; } cin >> s; double p; cin >> p; //cout << d << endl; cout << (int)(d*(60/p)+0.5); //*/ return 0; } ```
by xinlong @ 2023-08-05 14:25:01


@[xinlong](/user/867904) 在循环里直接退出就好 ``` if(s=="EOF"){ double p; cin >> p; cout << (int)(d*(60/p)+0.5); return 0; } ```
by cyx13579 @ 2023-08-05 14:31:13


![](https://z3.ax1x.com/2021/07/07/RHbGUH.gif)![](https://z3.ax1x.com/2021/07/07/RHbGUH.gif)![](https://z3.ax1x.com/2021/07/07/RHbGUH.gif)![](https://z3.ax1x.com/2021/07/07/RHbGUH.gif)![](https://z3.ax1x.com/2021/07/07/RHbGUH.gif)![](https://z3.ax1x.com/2021/07/07/RHbGUH.gif) 感谢大佬(已关)
by xinlong @ 2023-08-05 14:38:07


|