文章
20
粉丝
224
获赞
56
访问
137.4k
一开始的写的一份代码,没用getchar()把缓存里的回车干掉,并且是通过scanf("%d\n", &n)来获取字符串个数的输入,但是Output Limit Exceeded,就是下面会多出很多换行,不过我在本地上是正常的,代码如下。
#include<bits/stdc++.h>
using namespace std;
bool cmp(string s1, string s2) {
return s1.length() < s2.length();
}
int main() {
int n;
while (scanf("%d\n", &n)) {
string s;
string *p = new string[n];
int i = 0;
for (i; i < n; ++i) {
getline(cin, s);
if (s.compare("stop") == 0) break;
else p[i] = s;
}
sort(p, p + i, cmp);
for (int j = 0; j < i; ++j) {
cout << p[j] << endl;
}
}
}
后面把scanf("%d\n", &n)换回cin >> n,然后在第一个getline前getchar()一次就通过了,代码如下。
#include<bits/stdc++.h>
using namespace std;
bool cmp(string s1, string s2) {
return s1.length() < s2.length();
}
int main() {
int n;
while (cin >> n) {
getchar();
string s;
string *p = new string[n];
int i = 0;
for (i; i < n; ++i) {
getline(c...
登录后发布评论
暂无评论,来抢沙发