两种排序算法 #include<iostream> using namespace std; int func1(char* str[], int n) { //比较ascii码 int i = 0; while (i < n - 1) { if (strcmp(*(str + i), *(str + i + 1)) > 0) { return 0; } i++; } return 1; } int func2(char* str[], int n) { //比较长度 int i = 0; while (i < n - 1) { if (strlen(*(str + i)) > strlen(*(str + i + 1))) { return 0; } i++; } return 1; } void cinStr(char* str[], int n) { //从键盘接收多个字符串 int i = 0, j = 0; char tmp[100]; for (i; i < n; ++i) { scanf("%s", tmp); str[i] = new char[10]; strcpy(str[i], tmp); } } /*int n; //c++这样处理接收字符串会更好 cin>>n; vector<string> v; v.resize(n); for(auto& str : v) cin>>str;*/ int main() { int n = 0; cin >> n; char** p = new char*[n]; cinStr(p, n); int a = func1(p, n); int b = func2(p, n); if (a == 1 && b == 1) { cout << "both" << endl; } else if (b == 1) { cout << "lengths" <<endl; } else if (a == 1) { cout << "lexicographically" << endl; } else { cout << "none" << endl; } return 0; }