#include #include #include #include using namespace std;const int MAXN = 9;int N;string s[MAXN];int id[MAXN];bool cmp(int i,int j) { // 比较函数return s[i] + s[j] < s[j] + s[i];} void input() { // 输入函数int i;char str[109];scanf("%d",&N); /

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/10 09:35:54

#include #include #include #include using namespace std;const int MAXN = 9;int N;string s[MAXN];int id[MAXN];bool cmp(int i,int j) { // 比较函数return s[i] + s[j] < s[j] + s[i];} void input() { // 输入函数int i;char str[109];scanf("%d",&N); /
#include
#include
#include
#include
using namespace std;
const int MAXN = 9;
int N;
string s[MAXN];
int id[MAXN];
bool cmp(int i,int j) { // 比较函数
return s[i] + s[j] < s[j] + s[i];
}
void input() { // 输入函数
int i;
char str[109];
scanf("%d",&N); // 读入字符串数目,C style,也可以直接cin>>N;
for (i = 0; i < N; i++) {
scanf("%s",str); // 读入字符串,C style,也可以直接cin>>s[i];
s[i] = str;
id[i] = i; // 标记字符串下标,用于排序
}
}
void solve() {
int i;
sort(id,id + N,cmp); // 基于下标的排序,字符串本身不被修改
for (i = 0; i < N; i++)
printf("%s",s[id[i]].c_str()); // 输出结果,C style,也可以直接cout

#include #include #include #include using namespace std;const int MAXN = 9;int N;string s[MAXN];int id[MAXN];bool cmp(int i,int j) { // 比较函数return s[i] + s[j] < s[j] + s[i];} void input() { // 输入函数int i;char str[109];scanf("%d",&N); /
如果s[i] + s[j] < s[j] + s[i];则返回“1”
如果s[i] + s[j] > s[j] + s[i];则返回“0”