在c语言中,month==1||3||5||7||8||10+为什么不能这样写?
时间: 2023-11-06 20:06:48 浏览: 61
在语言中,month==1||3||5||7||8||10+这样的写法是错误的。这是因为C语言中的逻辑运算符||(或)的优先级低于比较运算符==(等于),所以这个表达式会被解释为(month==1) || 3 || 5 || 7 || 8 || (10+),其中3、5、7、8都被视为非零值,所以整个表达式的结果总是为真。这显然不是我们想要的结果。
正确的写法应该是将每个比较运算符括起来,如下所示:
(month==1) || (month==3) || (month==5) || (month==7) || (month==8) || (month==10)
这样就可以正确地判断月份是否为1、3、5、7、8或10了。
相关问题
在c语言中,month==1||3||5||7||8||10 为什么不能这样写?
在C语言中,month==1||3||5||7||8||10这样的写法是错误的。这是因为C语言中的逻辑运算符||只能用于两个逻辑表达式之间的运算,而不能用于多个逻辑表达式之间的运算。正确的写法应该是month==1 || month==3 || month==5 || month==7 || month==8 || month==10。这样才能正确地判断month是否等于1、3、5、7、8或10。
以下代码由C语言书写,能根据指定的年、月计算当月所含天数。 int GetMaxDay( int year, int month ) { int maxday = 0; if ( month >= 1 && month <= 12 ) { if ( month == 2 ) { if ( year % 4 == 0 ) { if ( year % 100 == 0 ) { if ( year % 400 == 0 ) maxday = 29; else maxday = 28; } else maxday = 29; } else maxday = 28; } else { if ( month == 4 || month == 6 || month == 9 || month == || ) maxday = 30; else maxday = 31; } } return maxday; } 请画出以上代码的控制流图。 请计算上述控制流图的环路复杂度V(G)。 假设year的取值范围是1000<year<2001,请使用基本路径测试法为变量year、 month设计测试用例(写出year取值、month取值、maxday预期结果),使之满足基本路径覆盖要求。
抱歉,作为一个语言模型,我无法生成图形,但我可以为您提供相应的文字描述:
控制流图:
```
+---(1)---+
| |
V |
+--> month >= 1 |
| | month <= 12
| V |
| +--(2)--+ |
| | | |
+---| month |----+
| == 2 |
| |
| +---(3)----+
| | |
| V |
| year % 4 == 0 |
| | |
| V |
| year % 100 != 0 |
| | |
| V |
| +---(4)---+ |
| | | |
| | year % 400 == 0 |
| | | |
| | maxday = 29 |
| | | |
| +---------+ |
| +---(5)---+ |
| | | |
| | maxday = 28 |
| | | |
| +---------+ |
| +---(6)---+ |
| | | |
| | month == 4 |
| | || month == 6 |
| | || month == 9 |
| | || month == 11 |
| | | |
| | maxday = 30 |
| | | |
| +---------+ |
| | |
| +---(7)---+ |
| | | |
+---| |----+
| maxday = 31 |
| | |
+---------+ |
```
环路复杂度V(G) = 8
基本路径测试用例:
```
year = 1001, month = 1, maxday = 31
year = 1001, month = 2, maxday = 28
year = 1004, month = 2, maxday = 29
year = 1000, month = 4, maxday = 30
year = 2000, month = 6, maxday = 30
year = 1999, month = 9, maxday = 30
year = 2001, month = 11, maxday = 30
```
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)