这是我写的添加两个时间对象的代码,有人可以帮忙吗? 我希望用户输入时间并将它们加在一起。
请告诉我哪里出错了!请。
class time
{
public: int hh,mm,ss;
};
int main()
{
time t1;
time t2;
cout<<"Enter hour : ";
cin>>t1.hh;
cout<<endl<<"Enter minutes : ";
cin>>t1.mm;
cout<<endl<<"Enter seconds : ";
cin>>t1.ss;
cout<<endl<<"Enter hour : ";
cin>>t2.hh;
cout<<endl<<"Enter minutes : ";
cin>>t2.mm;
cout<<endl<<"Enter seconds : ";
cin>>t2.ss;
cout<<endl;
cout<<t1.hh<<":"<<t1.mm<<":"<<t1.ss;
cout<<" + ";
cout<<t2.hh<<":"<<t2.mm<<":"<<t2.ss;
cout<<" = ";
cout<<t1.hh+t2.hh<<":"<<t1.mm+t2.mm<<":"<<t1.ss+t2.ss;
getch();
return 0;
}
编译会产生以下错误:
main.cpp:13:错误:期待
;' before 't1'
;'在't2'之前 main.cpp:17:错误:在此范围内未声明't1' main.cpp:24:错误:在此范围内未声明't2'
main.cpp:14: error: expected
答案 0 :(得分:0)
如果你提供错误会更容易。
但是,你当然应该改变
class t1;
class t2;
到
time t1;
time t2;
此外,您应该避免使用名称time
,因为它是一个相当经典的function in c++。您可以致电您的班级Time
,以确保读者不会误解您的代码。
当然,您也应该更改t1
和t2
的声明。这意味着你可以尝试:
class Time
{
public: int hh,mm,ss;
};
int main()
{
Time t1;
Time t2;
[...]
答案 1 :(得分:0)
更改为:
int main()
{
time t1;
time t2;
此外,您在添加时间时也不会处理溢出(也就是说,您可以超过60秒):
time t3;
t3.hh = t1.hh + t2.hh;
t3.mm = t1.mm + t2.mm;
t3.ss = t1.ss + t2.ss;
if (t3.ss >= 60)
{
t3.ss -= 60;
t3.mm += 1;
}
if (t3.mm >= 60)
{
t3.mm -= 60;
t3.hh += 1;
}
cout << t3.hh << t3.mm << t3.ss << endl;
答案 2 :(得分:0)
我假设您没有显示以下行:
#include <iostream>
#include <stdlib.h>
using namespace std;
更改此行...
class t1;
class t2;
...到......
class time t1;
class time t2;
...你的程序应该编译。
此外,getch
是conio
库的一部分,我出于某种原因没有这个库,因此我使用getchar
代替:
getchar();
return 0;
答案 3 :(得分:0)
通过上面的提示汇总在一起,这应该编译并完成工作:
#include <iostream>
using namespace std;
class Time
{
public: int hh,mm,ss;
};
int main()
{
Time t1;
Time t2;
cout<<"Enter hour : ";
cin>>t1.hh;
cout<<endl<<"Enter minutes : ";
cin>>t1.mm;
cout<<endl<<"Enter seconds : ";
cin>>t1.ss;
cout<<endl<<"Enter hour : ";
cin>>t2.hh;
cout<<endl<<"Enter minutes : ";
cin>>t2.mm;
cout<<endl<<"Enter seconds : ";
cin>>t2.ss;
cout<<endl;
cout<<t1.hh<<":"<<t1.mm<<":"<<t1.ss;
cout<<" + ";
cout<<t2.hh<<":"<<t2.mm<<":"<<t2.ss;
cout<<" = ";
cout<<t1.hh+t2.hh<<":"<<t1.mm+t2.mm<<":"<<t1.ss+t2.ss;
getchar();
return 0;
}