gpt4 book ai didi

C 程序编号未正确排序数组

转载 作者:太空宇宙 更新时间:2023-11-04 01:48:00 27 4
gpt4 key购买 nike

我有一个产品结构数组,我试图按名称、类型、价格和数量对它们进行排序。名称和类型有效,但价格和数量无效。我的代码是:

else if (sort == sortByPrice)
{
for (int i = 0; i < numProducts; i++)
{
int smallPosition = i;
for (int x = i + 1; x < numProducts; x++)
{
if (list[i].price > list[x].price)
{
smallPosition = x;
}
}

temp = list[i];
list[i] = list[smallPosition];
list[smallPosition] = temp;
}

}
else if (sort == sortByQty)
{
for (int i = 0; i < numProducts; i++)
{
int smallPosition = i;
for (int x = i + 1; x < numProducts; x++)
{
if (list[i].qty > list[x].qty)
{
smallPosition = x;
}
}

temp = list[i];
list[i] = list[smallPosition];
list[smallPosition] = temp;
}
}

谁能告诉我为什么它不起作用/如何解决它?

最佳答案

跟进 Lee Daniel Crocker的评论,你应该动态比较 smallPosition 的值而不是 i 以便它总是指向最小的剩余项目:

    int smallPosition = i;
for (int x = i + 1; x < numProducts; x++)
{
if (list[smallPosition].price > list[x].price)
{
smallPosition = x;
}
}

关于C 程序编号未正确排序数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49640865/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com