开发者社区 问答 正文

指针数组两种排序方法结果大相径庭,求大神指导

#include 
#include 
int main()
{
void rankArr(char *pr[]);
char *p[]={"china","japan","tokyo","pairs","narry"};

int i;
for(i=0;i printf("%s\n",p[i]);
rankArr(p);
for(i=0;i printf("%s\n",p[i]);
return 0;
}
void rankArr(char *pr[])
{
char *temp;
int i , j ;
for(i=0;i {
for(j=i+1;j {
if(strcmp(pr[i],pr[j])>0);
{
temp=pr[j];
pr[j]=pr[i];
pr[i]=temp;
}
}
}
}
/*void rankArr(char pr[])
{
char *temp;//定义交换时存储临时变量的字符串单元
int i, j;
for( i=0;i {
for( j=0;j {
if(strcmp(pr[j],pr[j+1])>0)
{
temp=pr[j+1];
pr[j+1]=pr[j];
pr[j]=temp;
}//调用内置函数完成交换字符串
}
}
}/

展开
收起
a123456678 2016-03-24 11:26:00 1895 分享 版权
1 条回答
写回答
取消 提交回答
  • if(strcmp(pr[i],pr[j])>0);
    这里多了一个逗号,导致后面的交换不在判断中,而是每次都执行。

    2019-07-17 19:12:26
    赞同 展开评论
问答分类:
问答地址: