文章
79
粉丝
221
获赞
46
访问
198.3k
#include <iostream>
#include <string>
using namespace std;
void BubbleSort(string* a, int n) {
for (int i = 0, flag = 0; i < n; i++) {
for (int j = 1; j < n - i; j++)
if (a[j].size() < a[j - 1].size()) {
swap(a[j], a[j - 1]);
flag = 1;
}
if (flag == 0)
break;
}
}
int main() {
int n;
while (cin>>n) {
string* a = new string[n];
getline(cin, a[0]);
for (int i = 0; i < n; i++) {
getline(cin, a[i]);
if (a[i] == "stop") {
n = i;
break;
}
}
BubbleSort(a, n);
for (int i = 0; i < n; i++)
cout << a[i] << endl;
}
return 0;
}
使用cin后立即使用getline造成getline的值为"\n"直接赋值给字符串,可以选择在cin后使用cin.ignore();语句忽视本行输入,或者按照答主这样获取两遍字符串a[0]。
登录后发布评论
暂无评论,来抢沙发