gpt4 book ai didi

c - 无效左值 - if 中的 bool 值

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

我正在尝试破解我的 C 程序的主要测试。不幸的是,我真的遇到了问题和圈子。

使用这个表达式:

这是我的完整代码

int prim(int x)
{
int i,j;
for(i=x;i>0;i--)
{
if(x%i==0 && i=!x)
{
printf("%i no prime %i",x);
}
}
}

给我这个错误:10 D:\C\L2\main.c invalid lvalue in assignment

我不明白为什么会这样。有 helper 吗?

最佳答案

是的,您有点混淆了运算符。

试试这个:

if((x%i) == 0 && i != x)

括号将确保在与 == 比较之前先执行模运算(== => Compare, = =>分配)

一点解释:

首先,您使用了赋值运算符(单个 =)。这意味着,您告诉计算机取“0”的值并将其分配给 x%i。但是,x%i 不是一个变量,而是一个方程。这就是您的编译器所提示的。 '无效的左值' -> '不能分配给等号左边的值'。在另一个错误中,您混淆了事物的顺序。这 '!'标记表示“不”。所以我不等于 x。你写的是:i EQUAL NOT x。这实际上可能有效,但很可能不会给你想要的结果。 (因为 NOT 变量会反转它)。

invert 在此上下文中的意思是,它取数字中的每一个和每一个零并将它们调换。假设你有 1000 0001 (unsigned char),它在反转之后是 0111 1110。

关于c - 无效左值 - if 中的 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15343419/

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