#include<iostream>
using namespace std;
void han(char* a[], int n) {
char* temp;
int i, j;
for (int i = 0; i < n - i; i++) {
for (j = i + 1; j < n; j++) {
if (strcmp(a[i], a[j]) > 0) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
for (int i = 0; i < n; i++) {
cout << a[i] << endl;
}
}
输出不出来
姓名按照首字母排序
你 a是二维字符数组,还是字符数组指针, 你这个函数只能用于字符数组指针
你题目的解答代码如下:
#include<iostream>
#include<cstring> //使用strcmp函数要引入<cstring>头文件
using namespace std;
void han(char* a[], int n) {
char* temp;
int i, j;
for (int i = 0; i < n - 1; i++) { // 是n - 1; 不是n - i;
for (j = i + 1; j < n; j++) {
if (strcmp(a[i], a[j]) > 0) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
for (int i = 0; i < n; i++) {
cout << a[i] << endl;
}
}
int main()
{
char* a[] = {"bvc","cft","asd","ert","dsa"};
han(a, 5);
return 0;
}
如有帮助,望采纳!谢谢!