您的位置:首页 > 其它

今天又解决了一个问题。

2007-10-13 03:27 274 查看
#include<iostream.h>
//using namespace std;
typedef struct
{ int x,y,z; //为什么不能用typedef
}time;
time operator++(struct &time,struct &time)/*编译的时候老是这里出错*/
{ time time3;
int x,y,z;
time3.x=time1.x+time2.x;
time3.y=time1.y+time2.y;
tine3.z=time1.z+time2.z;
z= time3.z;y= time3.y;x= time3.x;
time3.z%=60;
time3.y=(time3.y+z/60)%60;
time3.x=(time3.x+(y+z/60)/60)%24;
return time3;
}
int main ()
{ time time1,time2,time3;

cout<<"please input the data1:"<<endl;
cin>>time1.x>>time1.y>>time1.z>>endl;
cout<<"please input the data2:"<<endl;
cin>>time2.x>>time2.y>>time2.z>>endl;
time3=time1++time2;
cout<<"the result is :"<<time3.x<<"/"<<time3.y<<"/"<<time3.z<<endl;
return 0;

}
现在我认为是运算符的问题了,应该是+,而不是++。
time operator + (struct &time,struct &time) /*编译的时候老是这里出错*/
运行一下,
还是不行,也不知道为什么,老是有一个错误提示,Error ......{ expected
啊我终于找到了问题的根源所在:
cin>>time1.x>>time1.y>>time1.z>>endl;后面不能有endl.
应该是cin>>time2.x>>time2.y>>time2.z;

最后一次调试成功的程序:
#include<iostream.h>
//using namespace std;
struct time
{ public: //比原来的程序多的地方,这是为什么呢?
int x,y,z;
};
time operator+(time & time1,time & time2)//编译的时候老是这里出错,这里的+能不能写成++?回答是否定的。不可以。
{ time time3;
int x,y,z;
time3.x=time1.x+time2.x;
time3.y=time1.y+time2.y;
time3.z=time1.z+time2.z;
z= time3.z;y= time3.y;x= time3.x;
time3.z%=60;
time3.y=(time3.y+z/60)%60;
time3.x=(time3.x+(y+z/60)/60)%24;
return time3;
}
int main ()
{ time time1,time2,time3;

cout<<"please input the data1:"<<endl;
cin>>time1.x>>time1.y>>time1.z;
cout<<"please input the data2:"<<endl;
cin>>time2.x>>time2.y>>time2.z;
time3=time1+time2;
cout<<"the result is :"<<time3.x<<"/"<<time3.y<<"/"<<time3.z<<endl;
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: