在做这道题时要注意以下几个点:
一、闰年的判断:
1.能被4整除而不能被100整除(如:2004年就为闰年,1900年就不是)
2.能被400整除(如2000年)
3.也可以只考虑年份的末两位,若末两位能整除4,那么就为闰年
二、条件运算符的运用:条件?表达式1:表达式2(若条件为真则执行表达式1,否则执行表达式2)
三、printf语句输出时,其函数格式字符要用c(c:以字符形式输出,只输出一个字符)

  1. #include<stdio.h>
  2. #define LEAP_YEAR(y)((y%4==0&&y%100!=0)||(y%400==0))?'L':'N'
  3. int main()
  4. {
  5. int y;
  6. scanf("%d",&y);
  7. printf("%c\n",LEAP_YEAR(y));
  8. return 0;
  9. }
点赞(0)
 

9.3 分

20 人评分

 

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 5 条评论

CrazyDuck 2年前 回复TA
为什么这个提交上去是错的,答主可以帮忙看看吗
#include<stdio.h>
#define LEAP_YEAR(y)  ((y%4==0&&y%100!=0)||(y%400==0))?'L':'Y'
int main()
{
	int year;
	scanf("%d", &year);
	printf("%c", LEAP_YEAR(year));
	return 0;
}
s99q 4年前 回复TA
@懵懵 宏是较为简单的替换
C语言云玩家 4年前 回复TA
666,很简洁明了
田晓慧 5年前 回复TA
@懵懵 你好,可以的。但是要灵活运用。在宏定义中使用if条件判断语句时通常将语句序列放在do{···}while(0)中或者转换成?:表达式,避免发生错误。
懵懵 5年前 回复TA
答主,请问在宏定义里可以使用条件判断语句吗