解题思路:

宏本质是字面值替换,把一个值换成字符串,所以出现条件判断(多个可能的输出)时只靠宏是没法输出的。所以我定义了一个判断闰年的函数,该函数一定要有返回值,即返回L或S。最后把宏定义成这个函数。在主函数中使用宏时就自动替换成这个函数了。


注意事项:

闰年的定义有三句话,小朋友们都记住了吗?


参考代码:

#include <iostream>

#define LEAP_YEAR(y) leap(y) //替换为该子函数

using namespace std;

char leap(int year); //判断闰年
int main() {
	int y = 0;
	cin >> y;
	cout << LEAP_YEAR(y) << endl;
	return 0;
}
char leap(int year) {
	if((year % 4 == 0 && year % 100) || (year % 400 == 0)) {
		return 'L';
	} else {
		return 'N';
	}
}


点赞(0)
 

0.0分

1 人评分

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

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

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

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

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

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

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

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

评论列表 共有 1 条评论

不惧黑夜 2年前 回复TA
感觉就跟没定义宏一样呢