永发信息网

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);
}
全部回答
  • 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后面如果不换行,写什么都相当于没有,

经过实验,只有换行后才能有正确的结果.

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯