xr_zy1110 2016-01-27 09:33 采纳率: 50%
浏览 1429
已采纳

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

#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条回答

  • threenewbee 2016-01-27 09:48
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器