0

我的代码有问题。该程序应该计算秒/年。我设法修复了闰年,但无法修复正常的年份。希望有人可以修复它。(这是一个调用 main 的函数)

笔记

  • h=小时
  • d=天
  • 是=年
  • m=月
  • s=秒
  • t = 总秒数
  • t2=闰年

#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;
    }
}
4

1 回答 1

2

if(y=true)总是 true因为它将被评估为分配的值。

应该:

if(y)

实际上这是一个很好的理由来看看为什么我们== true在比较booleans 时不写。您很容易拼错一个=导致分配而不是比较的错误。

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

挽救生命的提示:正如@FredLarson 所提到的,启用警告(-Wall),您将收到关于此的警告。

于 2013-11-25T20:24:31.230 回答