黑马程序员技术交流社区

标题: 一个if 条件问题 [打印本页]

作者: 离渊    时间: 2014-4-28 22:01
标题: 一个if 条件问题
本帖最后由 离渊 于 2014-4-28 22:17 编辑

int  yue[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

    if((date[0]%100!=0 && date[0]%4==0)||date[0]%400) yue[2]=29;
    printf("%d\n",yue[2]);

这个if这么写有问题么?  为什么跟我得到的结果相反  得出结果变成闰年28 不闰 29了


作者: NenKeer    时间: 2014-4-28 22:10
  1. int  yue[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

  2.     if((date[0]%100!=0 && date[0]%4==0)||date[0]%400) yue[2]=29;   //date[0]%400 改成 date[0]%400 == 0试试
  3.     printf("%d\n",yue[2]);
复制代码

作者: 离渊    时间: 2014-4-28 22:17
NenKeer 发表于 2014-4-28 22:10

一语惊醒梦中人
作者: gaoxinglei123    时间: 2014-4-28 22:20
第二个条件date[0]%400取余写反了。当能被400整除闰年时。结果为0。反了这时应该取1。或后面条件加个反就行




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2