细致讲解,通俗易懂
2026-08-28 16:50:12
发布于:四川
6阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
string a[25];
string b[25];
int main() {
int n;
cin >> n;
// 读入n个字符串存入a数组
for (int i = 0; i < n; i++) cin >> a[i];
// b数组保存原始输入顺序
for (int i = 0; i < n; i++) b[i] = a[i];
// 冒泡排序
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
// 排序规则:
// 1. 字符串长度小的放前面;
// 2. 长度相等时,字典序小的放前面(a[j]>a[j+1]就交换)
if (a[j].size() < a[j + 1].size() || (a[j].size() == a[j + 1].size() && a[j] > a[j + 1])) {
swap(a[j], a[j + 1]);
}
}
}
int m;
// 在原始数组b中,找到排序后最小元素a[0]的原始位置,输出下标+1(题目要从1开始的序号)
for (int i = 0; i < n; i++)
if (b[i] == a[0]) {m = i + 1; break;}
cout << m << endl << a[0];
return 0;
}
这里空空如也








有帮助,赞一个