gpt4 book ai didi

c - 如何在 C 中的 bool 表达式中计算不同长度的数组?

转载 作者:太空宇宙 更新时间:2023-11-04 07:16:51 26 4
gpt4 key购买 nike

我的问题与已经提出的问题非常相似here .

然而,数组的长度(和输入)是从文件中读取的。如何计算示例中的 bool 表达式?

fread(length, 4, 1, file);
array= calloc(length, sizeof(int));
fread(array, 4, length, file);

b = 7;

// I want to compare b with every entry in array
if(b==array[0]||b==array[1]||b==array[2]||...)
// do something
end

最佳答案

假设类型匹配,并且没有需要处理的字节序问题,您应该能够循环:

bool array_is_b = true;
for(size_t i = 0; i < length && array_is_b; ++i)
{
array_is_b = array[i] == b;
}

循环后,如果每个元素都等于b,则array_is_btrue

这是一个取消显式赋值的尝试,它可能更快:

bool array_is_self(const int *array, size_t length, int b)
{
for(size_t i = 0; i < length; ++i)
{
if(array[i] != b)
return false;
}
return true;
}

这将操作重新安排到一个函数中,以便它可以使用 return 而不是单独的变量来跟踪状态。只要循环正在运行,直到 i 的所有元素都等于 b。我假设数组类型为 int

关于c - 如何在 C 中的 bool 表达式中计算不同长度的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23911914/

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