xr_zy1110
xr_zy1110
采纳率50%
2016-01-27 09:33 阅读 1.4k
已采纳

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

#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;
}//调用内置函数完成交换字符串
}
}
}
/

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • 已采纳
    caozhy 从今以后生命中的每一秒都属于我爱的人 2016-01-27 09:48

    if(strcmp(pr[i],pr[j])>0);
    这里多了一个逗号,导致后面的交换不在判断中,而是每次都执行。

    点赞 2 评论 复制链接分享
  • qq_27183003 ysuwood 2016-01-27 09:47
     点击发表框工具栏上面的代码片图标,把代码放到代码片里,否则粘贴过来,容易出现错误,格式也很乱。
    
    点赞 2 评论 复制链接分享
  • qq_27183003 ysuwood 2016-01-27 09:49

    注意循环体中指针数组下标是否有越界。

    点赞 2 评论 复制链接分享
  • 91program 91program 2016-01-27 09:36

    你想在函数中改变指针的值,则函数的参数必须是指向指针的指针。
    就像你想使用 int 型变量的值,函数的参数必须是指向 int 的指针。

    点赞 1 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2016-01-27 09:51

    而且你的代码有不止一个错误。根本不是什么大相径庭,而是错误百出。

    点赞 1 评论 复制链接分享

相关推荐