gpt4 book ai didi

C - 如何在方法中对数组进行排序和打印,但不影响先前未排序的数组

转载 作者:行者123 更新时间:2023-11-30 15:45:42 25 4
gpt4 key购买 nike

这是一个一成交或不成交的游戏。

所以在我的主函数中,我这样调用我的 casesort 方法:

casesort(cases);

我的方法看起来像这样,我已经意识到这不是最有效的排序,但我将按照我所知道的进行:

void casesort(float cases[10])
{
int i;
int j;
float tmp;
float zero = 0.00;

for (i = 0; i < 10; i++)
{
for (j = 0; j < 10; j++)
{
if (cases[i] < cases[j])
{
tmp = cases[i];
cases[i] = cases[j];
cases[j] = tmp;
}
}
}

//Print out box money amounts
printf("\n\nHidden Amounts: ");
for (i = 0; i < 10; i++)
{
if (cases[i] != zero)
printf("[$%.2f] ", cases[i]);
}

}

所以当我回到主窗口时,发现数组已排序。我认为 void 会阻止该方法返回排序数组。我需要打印出实际的案例编号,我通过跳过任何填充有 0.00 的案例来做到这一点。但是在第一轮案例选择之后,我在 MAIN 中打印出“5,6,7,8,9,10”。我需要它根据已挑选的内容打印箱子。我觉得这是一个简单的修复,只是我对 C 细节的了解仍在增长。有什么想法吗?

最佳答案

返回类型void与防止数组排序无关。它只是说该函数不返回任何内容。

您会看到传递的数组本身受到影响,因为数组在传递给函数时衰减为指针。复制该数组,然后传递它。这样你就得到了原始列表。

关于C - 如何在方法中对数组进行排序和打印,但不影响先前未排序的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18882978/

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