gpt4 book ai didi

c - 移动数组中的元素

转载 作者:行者123 更新时间:2023-12-01 15:38:41 26 4
gpt4 key购买 nike

我不确定为什么下面的代码不起作用,我试图在数组中找到 NaN 的值,然后将 NaN 移动到数组中的第一个元素(元素 0)并交换现有元素 0无论 NaN 在哪里。请问你能检查我的代码吗?也许你们可以看到我看不到的东西?

提前致谢!

#define NaN (float)(1e308*10*0)


void movenan(float array[], int size)
{
int w;
float hold;
float move;

for(w = 0; w < SIZE - 1; w++)
{
if(array[w] == NaN)
{
hold = array[w];
array[w] = array[0];
array[0] = hold;
}
}

最佳答案

你的 NaN检查错误:NaN 不等于任何东西,包括它们自己。

使用 isnan() 检查值是否为 NaN。

如果isnan()不可用,检查是否为 f 的规范方法是 NaN 如下:f != f .这评估为真当且仅当 f是 NaN。

这里有更多信息:Checking if a double (or float) is NaN in C++ (问题是关于C++的,但是也有很多关于C的信息。)

最后,你的终端条件 for循环看起来很可疑。你是说 < SIZE<= SIZE-1

关于c - 移动数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9427708/

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