c语言 用宏定义条件编译方法输出1900-2000年中的闰年
答案:3 悬赏:30 手机版
解决时间 2021-02-13 20:51
- 提问者网友:wodetian
- 2021-02-13 10:44
c语言 用宏定义条件编译方法输出1900-2000年中的闰年
最佳答案
- 五星知识达人网友:傲气稳了全场
- 2021-02-13 11:53
闰年规则为,4年一闰,百年不闰,四百年再闰。
根据此规则,编写判断闰年的宏函数如下:
#define is_leap(x) (x%400==0 || (x%4==0 && x%100!=0))
根据题意,对1900到2000进行遍历,判断输出即可。
#define _for(x,s,e) for(x=s;x<=e; x++)
#define out(x) printf("%d,",x)
#define is_leap(x) (x%400==0 || (x%4==0 && x%100!=0))
int main()
{
int i;
_for(i,1900,2000)
if(is_leap(i))
out(i);
}
根据此规则,编写判断闰年的宏函数如下:
#define is_leap(x) (x%400==0 || (x%4==0 && x%100!=0))
根据题意,对1900到2000进行遍历,判断输出即可。
#define _for(x,s,e) for(x=s;x<=e; x++)
#define out(x) printf("%d,",x)
#define is_leap(x) (x%400==0 || (x%4==0 && x%100!=0))
int main()
{
int i;
_for(i,1900,2000)
if(is_leap(i))
out(i);
}
全部回答
- 1楼网友:像个废品
- 2021-02-13 13:51
直接用for循环可以不?
#include <stdio.h>
main(){
int year;
for(year = 1900;year <= 2000;year++){
if((year % 4 == 0 && year % 400 != 0)||year % 400 == 0 ){
printf("%d,",year);
}
}
}
- 2楼网友:爱难随人意
- 2021-02-13 13:15
#if letter
if(c>='a'&&c<='z') c=c-32;这是有定义时的代码
#else
if(c>='a'&&c<='z') c=c+32; 这是无定义时的代码.
#endif
#ifdef letter
if(c>='a'&&c<='z') c=c-32;
#else(c>='a'&&c<='z') c=c+32; //不换行的话,后面的内容编译器就不识别了.
#endif
我用的是vc6,不知道你的是什么编译器,
在#else后面如果不换行,写什么都相当于没有,
经过实验,只有换行后才能有正确的结果.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯