带参宏定义
来源:百度知道 编辑:UC知道 时间:2024/06/22 15:07:16
给年份 year 定义一个宏,以判别该年份是否闰年。提示:宏名可以定义为 LEAP_YEAR ,形参为 y 。
说明:( 1 )从键盘输入四位数的年份;
( 2 )输出该年份是否是闰年;
测试用例:输入
测试用例:输出
2005< 回车 >
2005 is not a leap year!
2008< 回车 >
2008 is a leap year!
158< 回车 >
Input error!
11159< 回车 >
Input error!
1900< 回车 >
1900 is not a leap year!
说明:( 1 )从键盘输入四位数的年份;
( 2 )输出该年份是否是闰年;
测试用例:输入
测试用例:输出
2005< 回车 >
2005 is not a leap year!
2008< 回车 >
2008 is a leap year!
158< 回车 >
Input error!
11159< 回车 >
Input error!
1900< 回车 >
1900 is not a leap year!
#include<stdio.h>
#define LEAP_YEAR(year) (year)%4==0?((year)%100==0?((year)%400==0?1:0):1):0
void main(){
int year;
scanf("%d", &year);
if(year >= 1000 && year <= 9999)
{
if(LEAP_YEAR(year))
{
printf("%d is a leap year!\n", year);
}
else
{
printf("%d is not a leap year!\n", year);
}
}
else
{
printf("Input error!\n");
}
}
#define LEAP_YEAR(y) (((!((y)%4)&&y%100)||!(y%400))?1:0)