我的代码问题在这里。该程序应该计算秒/年。我已经设法修复了飞跃但是无法修复正常的一年。希望有人能解决它。 (这是一个被称为main的函数)
注意
#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;
}
}
答案 0 :(得分:2)
if(y=true)
这是始终 true
,因为它将被评估为指定的值。
应该是:
if(y)
实际上,这是一个很好的理由,可以看出为什么我们在比较== true
时不会写boolean
。您可以轻松拼错一个=
导致分配而不是比较。
此外,究竟是什么cin>>y||n;
?
拯救生命的提示:正如@FredLarson所提到的,启用警告(-Wall
),你会收到警告。