代码 - 帮助leapyear

时间:2013-11-25 20:23:02

标签: c++ leap-year

我的代码问题在这里。该程序应该计算秒/年。我已经设法修复了飞跃但是无法修复正常的一年。希望有人能解决它。 (这是一个被称为main的函数)

注意

  • h =小时
  • d =天
  • 咋=年
  • M =月
  • s =秒
  • t =总秒数
  • t2 = leapyear

#include <iostream>
using namespace std;

void max_s()                            
{
    unsigned long long s=1; 

int h=s*60;

    int d=h*24; 
    int m=30; 
    int ye=12;
    long long t=s*h*d*m*ye; 
    long long t2=t+86400;
    bool y,n;
    y=true;
    n=false;
    cout<<"leapyear? 'y' for yes 'n' for no "<<endl;
    cin>>y||n;
    if(y=true)
    {
        cout<<"leapyear:"<<t2<<endl;
    }
    else
    {   
        n=false;
        cout<<t;
        cout<<"seconds/year "<<endl;
    }
}

1 个答案:

答案 0 :(得分:2)

if(y=true)这是始终 true,因为它将被评估为指定的值。

应该是:

if(y)

实际上,这是一个很好的理由,可以看出为什么我们在比较== true时不会写boolean。您可以轻松拼错一个=导致分配而不是比较。

此外,究竟是什么cin>>y||n;

拯救生命的提示:正如@FredLarson所提到的,启用警告(-Wall),你会收到警告。