>n; 如果(n>0&&n%2==0) 不能将n%2==!0替换为n%2!=0。额外的间隔是我个人的喜好,c++,C++" /> >n; 如果(n>0&&n%2==0) 不能将n%2==!0替换为n%2!=0。额外的间隔是我个人的喜好,c++,C++" />

这个模数有什么不对吗? 我写了一个C++程序,它从用户那里接收到一个数字和打印1,如果是正的,甚至打印2,如果是正的和奇数的,打印3,如果是负的,甚至打印,如果负的和奇数的打印4,如果零,打印0。 这是我的密码: #include <iostream> using namespace std; int main () { int n; cin>>n; if (n>0 && n%2==0) cout <<"1"; else if (n>0 && n%2==!0) cout <<"2"; else if (n<0 && n%2==0) cout <<"3"; else if (n<0 && n%2==!0) cout <<"4"; else if (n==0) cout <<"0"; return 0; } #包括 使用名称空间std; int main(){ int n; cin>>n; 如果(n>0&&n%2==0) 不能将n%2==!0替换为n%2!=0。额外的间隔是我个人的喜好

这个模数有什么不对吗? 我写了一个C++程序,它从用户那里接收到一个数字和打印1,如果是正的,甚至打印2,如果是正的和奇数的,打印3,如果是负的,甚至打印,如果负的和奇数的打印4,如果零,打印0。 这是我的密码: #include <iostream> using namespace std; int main () { int n; cin>>n; if (n>0 && n%2==0) cout <<"1"; else if (n>0 && n%2==!0) cout <<"2"; else if (n<0 && n%2==0) cout <<"3"; else if (n<0 && n%2==!0) cout <<"4"; else if (n==0) cout <<"0"; return 0; } #包括 使用名称空间std; int main(){ int n; cin>>n; 如果(n>0&&n%2==0) 不能将n%2==!0替换为n%2!=0。额外的间隔是我个人的喜好,c++,C++,n%2==!0计算为n%2==(!0)由于运算符优先级的原因,!0等于1。令人恼火的是,它的方法对于正n情况非常有效,但是它打破了负n%2情况,对于奇负n,从C++11开始返回-1。(在此之前,结果是实现定义的。)将n%2==!0替换为n%2!=0。额外的间距是我个人的喜好 n%2==!0计算为n%2==(!0)由于运算符优先级的原因,!0等于1。令人恼火的是,它的方法对于正n情况非常有效,但是它打破了负n%2情况,对于奇负n,从C++11开始返回-1。(在此之前,结果是由实现定义的。)这与运算

n%2==!0
计算为
n%2==(!0)
由于运算符优先级的原因,
!0
等于
1
。令人恼火的是,它的方法对于正
n
情况非常有效,但是它打破了负
n%2
情况,对于奇负
n
,从C++11开始返回
-1
。(在此之前,结果是实现定义的。)

n%2==!0
替换为
n%2!=0
。额外的间距是我个人的喜好


n%2==!0
计算为
n%2==(!0)
由于运算符优先级的原因,
!0
等于
1
。令人恼火的是,它的方法对于正
n
情况非常有效,但是它打破了负
n%2
情况,对于奇负
n
,从C++11开始返回
-1
。(在此之前,结果是由实现定义的。)

这与运算符优先级无关,因为没有任何其他分组形式良好。你可能是指关联性吗?@StoryTeller:我可以说“硬连接到语言语法中”的确,运算符优先级是这一结果的必然结果,但对于这个答案的范围来说,这已经变得太多了。
在优先级表中确实排在
==
之前,所以我最好保持原样。不过,你可以整理一下你的答案。我在等待+1注释!不,我不想从这个角度攻击它。一个虽然答案的多样性是好的,但我认为逐字重复你的答案毫无意义:)当别人为我们说话时,我们投票!鉴于我还没有搞清楚短评论业务,剥夺你的机会是一种奇怪的满足感:P@SarahAhmed-不,这是逻辑否定。将虚假值转换为真实值。诸如此类。还要注意,
出现在它所操作的值之前,而不是之后。没有运算符R是一个阶乘C++,这与运算符优先级无关,因为没有其他的分组以任何方式形成。你可能意味着联想性吗?@ Stoytelel:我可以说“硬连接到语言的语法中”。的确,运算符优先级是这一结果的必然结果,但对于这个答案的范围来说,这已经变得太多了。
在优先级表中确实排在
==
之前,所以我最好保持原样。不过,你可以整理一下你的答案。我在等待+1注释!不,我不想从这个角度攻击它。一个虽然答案的多样性是好的,但我认为逐字重复你的答案毫无意义:)当别人为我们说话时,我们投票!鉴于我还没有搞清楚短评论业务,剥夺你的机会是一种奇怪的满足感:P@SarahAhmed-不,这是逻辑否定。将虚假值转换为真实值。诸如此类。还要注意,
出现在它所操作的值之前,而不是之后。没有运算符R是阶乘C++。假设你是“代码>!!= 0 < /COD>不<代码> = 0!<代码>我假设你是指<代码>!= 0 < /COD> > <代码> = =!0 < /代码>