解题思路:找到判断闰年的条件,根据是否闰年输出字符L或N


注意事项:闰年判断条件:((y%4==0 && y%100!=0)||(y%400==0))


#include <stdio.h>
#define LEAP_YEAR(y) ((y%4==0 && y%100!=0)||(y%400==0))?'L':'N'
int main(void)
{
	int y, c;
	scanf("%d", &y);
	c = LEAP_YEAR(y);
	printf("%c\n", c);
	return 0;
}


点赞(95)
 

0.0分

18 人评分

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

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

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

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

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

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

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

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

评论列表 共有 17 条评论

Adan1024 5年前 回复TA
老兄,老老实实把y用括号括起来吧。。。
但凡 5年前 回复TA
@小程序员 用int准确些,因为c='L'或c='N',而‘L’和‘N’是数值
杨磊 5年前 回复TA
@txb116424 三目运算符
专业报大腿 5年前 回复TA
@txb116424 @Officialmomo 一坨,形象
善良先生 5年前 回复TA
@txb116424 宏定义那个知识点,后面那一坨相当于LEAP_YEAR(y)的别名,后面的语法,‘?’前面的是判断真假,如果真,返回'L',如果假,返回'N'
txb116424 5年前 回复TA
#define LEAP_YEAR(y) ((y%4==0 && y%100!=0)||(y%400==0))?'L':'N'

谁能给我解释一下这种语法。
txb116424 5年前 回复TA
#include<stdio.h>
#define  LEAP_YEAR(y) ((n1 = y%4),(n2 = y%100),(n3 = y%400));
int main()
{
	int y,n1,n2,n3;
	printf("请输入一个年份:\n"); 
	scanf("%d",&y);
	LEAP_YEAR(y);
	if((n1 == 0&&n2 != 0)||(n3 == 0))
	printf("L\n");
	else 
	printf("N\n");
	return 0;
}
汪辰凯 5年前 回复TA
@Christ ???
Solotravel 6年前 回复TA
@小程序员 都可以,实际上字符都有一个对应的整型数值
Christ 6年前 回复TA
@Christ 哎呀,才发现能被400整除的数也能被100整除。。。尴尬。。