御笔剑客 发表于 2018-9-28 18:04:34

关于一行代码的问题

#include<bits/stdc++.h>
using namespace std;
bool judge(int year){return year%400==0||(year%4==0&&year%100!=0)?true:false;}
int main()
{
    int days = 0;
    int year =2001;
      for(int i=2000;i<=year-1;++i)
            days+= 365+judge(i)?1:0;
    cout<<days<<endl;
}


为什么输出的是1呢?不是366呢?

claws0n 发表于 2018-9-28 19:47:43

三元操作是关系符,优先级很低,变成在问 365 + 1 是 true or false,所以返回 1
365 + judge(i) 不就好了

御笔剑客 发表于 2018-9-28 20:02:06

claws0n 发表于 2018-9-28 19:47
三元操作是关系符,优先级很低,变成在问 365 + 1 是 true or false,所以返回 1
365 + judge(i) 不就好了

我明白了,谢谢了
页: [1]
查看完整版本: 关于一行代码的问题