64,651
社区成员
发帖
与我相关
我的任务
分享
void Sort(char *pstr[], int n)
{
char *temp;
int i, j, k;
for(i = 0; i < n - 1; i++)
{
k = i;
for(j = i + 1; j < n; j++)
{
if(strcmp(pstr[k], pstr[j]) > 0)
k = j;
if(k != i)
{
temp = pstr[i];
pstr[i] = pstr[k];
pstr[k] = temp;
}
}
}
}
void Output(char *pstr[], int n)
{
for(int i = 0; i < n; i++)
cout<<pstr[i]<<endl;
}
int main(int argc, char *argv[])
{
char *pstr[5] = {"BASIC", "FORTRAN", "C++", "PASCAL", "COBOL"};
Sort(pstr, 5);
Output(pstr, 5);
return 0;
}
void Sort(char *pstr[], int n)
{
char *temp;//定义一个临时的指向字符串的指针
int i, j, k;
//选择排序
for(i = 0; i < n - 1; i++)
{
k = i;
for(j = i + 1; j < n; j++)
{
if(strcmp(pstr[k], pstr[j]) > 0) //pstr[k] 和 pstr[j] 都是地址,strcmp 比较它们指向的字符串的值
k = j;
if(k != i)
{
//这里交换的是地址,也就是改变指针的指向,字符串本身没有变。
temp = pstr[i];
pstr[i] = pstr[k];
pstr[k] = temp;
}
}
}
}
void Output(char *pstr[], int n)
{
for(int i = 0; i < n; i++)
cout<<pstr[i]<<endl;
}
int main(int argc, char *argv[])
{
char *pstr[5] = {"BASIC", "FORTRAN", "C++", "PASCAL", "COBOL"}; //定义指向字符串的指针数组
Sort(pstr, 5); //传人指针数组的首地址
Output(pstr, 5);
return 0;
}