rmy_lay 2021-01-16 11:28 采纳率: 60%
浏览 13
已结题

想请各位看看这样的选择排序有问题吗?

void price_dish(SqList *L)
{
    int i,j,t,min,b;
    double a;
    char q[20],w[10];
    SqList *p=L;
    for (i=0;i<p->length-1;i++){
        min=i;
        for (j=i+1;j<p->length;j++)

            if (p->data[j].dishprice<p->data[min].dishprice){
                min=j;
                t=p->data[min].dishnumber;
                strcpy(q,p->data[min].dishname);
                strcpy(w,p->data[min].style);
                a=p->data[min].dishprice;
                b=p->data[min].salequantity;
                
                p->data[min].dishnumber=p->data[i].dishnumber;
                strcpy(p->data[min].dishname,p->data[i].dishname);
                strcpy(p->data[min].style,p->data[i].style);
                p->data[min].dishprice=p->data[i].dishprice;
                p->data[min].salequantity=p->data[i].salequantity;
                
                p->data[i].dishnumber=t;
                strcpy(p->data[i].dishname,q);
                strcpy(p->data[i].style,w);
                p->data[i].dishprice=a;
                p->data[i].salequantity=b;
            }
    } 
    printf("最新价格由低到高排行榜为:\n");
    DispListS_dish(sq);
}

 

但输出的结果是这样的:

你

 

  • 写回答

4条回答 默认 最新

  • SoftwareTeacher 《编程之美》作者 2021-01-16 12:27
    关注

    你如果用简单一点的数据集测试呢? 例如只有 3 个菜。 看看结果如何。

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

报告相同问题?