今天又解决了一个问题。

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

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值