takeiteasy_ 2022-05-18 11:23 采纳率: 93.3%
浏览 14
已结题

为什么排序函数总是没有作用

img



int rank(st *p,int n)
{
    int max=0,i;
    for( i=0;i<n;i++)
    {
        if((p+max)->score1<(p+i)->score1)max=i;
        printf("%d %d\n",(p+max)->score1,(p+i)->score1);
    }
    printf("i=%d\n",i);
    return i;
}

如图,我的rank函数为啥if那一句没有起到作用,他不管大于还是小于,总是吧i的值赋给了max,为甚我的if语句没作用,哪里出了问题?

  • 写回答

2条回答 默认 最新

  • 吕布辕门 新星创作者: 后端开发技术领域 2022-05-18 11:32
    关注
    
    if((p+max)->score1<(p+i)->score1)p= p+i; 
    
    

    将指向较大值的指针赋给指向较小值的指针

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

报告相同问题?

问题事件

  • 系统已结题 5月26日
  • 已采纳回答 5月18日
  • 创建了问题 5月18日