gpt4 book ai didi

c - 所有条件都相等的 If 语句

转载 作者:行者123 更新时间:2023-12-01 15:09:00 24 4
gpt4 key购买 nike

我需要 if 语句仅在语句中的 5 值相同时才执行。例如,如果 a[0] = a[1] = a[2] = [a3] = [a4] = 1

这只是 bool 代数的问题,但我做对不了。

我试过:

if( (A[0]) && (A[1]) && (A[2]) && (A[3]) == (A[4]))
{
Flag =1;
}

if( (A[0]),(A[1]),(A[2]),(A[3]) == (A[4]))
{
Flag =1;
}

if( (A[0]) == (A[1]) == (A[2]) == (A[3]) == (A[4]))
{
Flag =1;
}

但这些都不起作用。

有人可以帮忙吗?

谢谢!

最佳答案

有几个人给了你正确的答案;这里解释了为什么您的尝试没有奏效。

为什么 A[0] && A[1] && A[2] && A[3] == A[4] 不起作用:

如果 AB 为零,则表达式 A && B 的计算结果为 0,如果 A 均为 1,则表达式的计算结果为 1 B 是非零的。 && 运算符是左结合的,这意味着像 A && B && C 这样的表达式被解析为 (A && B) && C; IOW,CA && B结果(0 或 1)进行与运算。因此,A[0] && A[1] && A[2] && A[3] == A[4] 只有在 A[0]A[3] 都是非零 A[4] == 1,或者 A 中的任何一个[0]A[3] 是 0 A[4] == 0。还要注意 && 如果左侧操作数为 0,则运算符不会计算右侧操作数。

为什么 (A[0]),(A[1]),(A[2]),(A[3]) == (A[4]) 没有'工作:

逗号运算符按顺序计算每个表达式,结果是最后一个表达式的值,因此只比较A[3]的值A[4]A[0]A[2] 中的每一个都被评估,但结果被丢弃。

为什么 (A[0]) == (A[1]) == (A[2]) == (A[3]) == (A[4]) 无效:

类似于&&运算符,A == B的结果将是0或1。同样类似于上面的,== 运算符是左结合的,所以 A == B == C 被解析为 (A == B) == C,所以 C 正在与 A == B 的结果进行比较,后者将为 0 或 1。因此,只有在 A[0]A[1] 相同,A[2]A[4] 都等于 1。

因此,如果你想检查多个表达式是否都等价,你必须写这样的东西

A == B && B == C && C == D 

关于c - 所有条件都相等的 If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20403294/

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