我在这个模量上做错了什么
What am I doing wrong with this modulus?
我编写了一个C 程序,该程序从用户接收一个数字并打印1(如果为正,则打印2),如果正面和奇数,请打印3,如果负面,则打印3,如果是负数,则打印4,如果负数和奇数,则打印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;
}
除了我输入负面和奇数时,一切都很好,除了第4个情况外,它在屏幕上什么也没打印,这意味着所有这些情况都不是真的,我在第4个情况下做错了什么,没有模量负数还是什么?
用n % 2 != 0
替换n%2==!0
。额外的间距是我的个人口味。
n%2==!0
由于运算符优先级而评估为n%2==(!0)
,并且!0
等于1
。令人疯狂的是,您拥有的方式非常适合正式n
情况,但是它会破坏负n % 2
情况,对于奇数负n
,它从C 11开始返回-1
。(在此之前,结果定义了。)
相关文章:
- #定义c-预处理器常量..我做错了什么
- 努力将整数转换为链表。不知道我在这里做错了什么
- .h 和.cpp文件分离时出错,但仅使用 .h 文件时没有错误.我做错了什么?
- 我的C++线程做错了什么?
- 谁能告诉我我用 getline 做错了什么 (cpp) 格式
- 没有输出的合并排序我做错了什么?
- 我正在尝试使用 while 循环从字符串中删除字母,直到没有字母。我在这里做错了什么?
- 在C++中使用 AKS 素数测试计算双胞胎素数 我做错了什么?
- 我一直试图弄清楚我在这个链表程序中做错了什么
- 我正在尝试学习如何在 c++ 中传递指针,但出现错误:没有用于调用"test"的匹配函数。我做错了什么?
- FFMPEG,C++,内存泄漏,我做错了什么?
- 我做错了什么?反向字符串 C++
- 我在这个课上做错了什么?
- 创建整数的 2D 数组,该数组将使用两个函数用随机数填充矩阵.我做错了什么?
- 在不使用内置库函数的情况下添加字符串,我做错了什么?
- 我做错了什么?GetDiskFreeSpaceExA的功能根本不起作用
- 我在查找和字符串上做错了什么?
- 我正在尝试用 c++ 制作一个日志记录框架,但信息没有传递给记录器的子组件,我做错了什么?
- 我在尝试将多个值push_back向量时出错。我做错了什么?
- 插入排序:我做错了什么?