输出一个年份year,判断year是不是闰年
闰年判断规则:
1.能被4整除并且不能被100整除是闰年;
2.能被400整除是闰年。
逻辑分析:闰年判断方法有两个,其中有一种方法能够判断 year 是闰年即可得到结果,因此两个方法之间是或者关系,即用 || 连接;在法1中,被4整除和不被100整除需要同时满足才能判断year是否为闰年,因此需要用并且关系,即用&&链接。
代码演示
1 #include <stdio.h> 2 int main() 3 { 4 int year = 0; 5 scanf("%d", &year); 6 if( (year % 4 == 0 && year % 100 != 0)|| (year % 400 == 0)) 7 { 8 printf("%d是闰年", year); 9 } 10 return 0; 11 }
代码演示:
1 #include <stdio.h> 2 int main() 3 { 4 int year = 0; 5 scanf("%d", &year); 6 if (year % 4 == 0 && year % 100 != 0) 7 { 8 printf("%d是闰年", year); 9 } 10 else if (year % 400 == 0) 11 { 12 printf("%d是闰年", year); 13 } 14 return 0; 15 }
1 #include <stdio.h> 2 int main() 3 { 4 int year = 0; 5 scanf("%d", &year); 6 if (year % 4 == 0 ) 7 { 8 if ( year % 100 != 0) 9 { 10 printf("%d是闰年", year); 11 } 12 } 13 if (year % 400 == 0) 14 { 15 printf("%d是闰年", year); 16 } 18 }
大家可以根据自己的情况选择想用的方式。
这里小编比较推荐的是第一种方法,从代码行数上来看第一种是最简洁明了的。
阅读代码,计算代码输出的结果
1 #include <stdio.h> 2 int main() 3 { 4 int i = 0, a = 0, b = 2, c = 3, d = 4; 5 i = a++ && ++b && d++; 6 printf("a = %d\n b = %d\n c =%d\n d = %d\n", a, b, c, d); 7 return 0; 8 }
代码结果:
分析:
a++:先使用,后加1
因此 a++ && ++b 表达式左边结果为 0 即为假,而&&为真的条件是两边都为真,所以 a++ && ++b表达式为假,根据短路,++b && d++也就不需要计算了。
a++在使用后加1,因此a最终打印结果为1.而 b c d由于没有进行运算,结果不变。
所以,最终结果为 a = 1 、b = 2 、c = 3 、d = 4。
1 #include <stdio.h> 2 int main() 3 { 4 int i = 0, a = 1, b = 2, c = 3, d = 4; 5 i = a++ || ++b || d++; 6 printf("a = %d\n b = %d\n c =%d\n d = %d\n", a, b, c, d); 7 return 0; 8 }
代码结果:
分析:
a++ || ++b :a = 1 因此a++为真, || 只要有一个为真结果即为真,因此 ++b就不需要计算了。同理,d++也不需要计算了。
因此最终结果为 a = 2、 b = 3、 c = 3、 d = 4。
由于小编是初次讲解题目,可能描述不够清晰,若存在不准确之处,期待各位大佬的指正,感谢!!!
本篇文章到此告一段落,衷心感谢各位的阅读。期待与诸君下次再见!