文章
34
粉丝
0
获赞
354
访问
7.2k
#include <bits/stdc++.h>
using namespace std;
// 正确的比较函数
bool cmp(const char* a, const char* b) {
int lenA = strlen(a);
int lenB = strlen(b);
if (lenA != lenB) {
return lenA < lenB; // 长度不同,按长度升序
}
return strcmp(a,b)<0; // 长度相同,按字典序升序
}
int main() {
int n;
char num[100][1000];
while (scanf("%d", &n) != EOF) {
for (int i = 0; i < n; i++) {
scanf("%s", num[i]); // 注意:num[i]是数组,不需要&
}
char* suffice[100];
for(int i=0;i<n;i++)
suffice[i]=num[i];
// 排序
stable_sort(suffice, suffice + n, cmp);
// 输出结果
for (int i = 0; i < n; i++) {
printf("%s\n", suffice[i]);
}
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发