为了账号安全,请及时绑定邮箱和手机立即绑定

C++的问题,提交了是Time Limit Exceeded,求解?

C++的问题,提交了是Time Limit Exceeded,求解?

C++
慕盖茨8171496 2018-09-04 16:19:03
#include<iostream>#include<string>using namespace std;class complex{public: complex(){} complex(double m,double n) { this->m=m; this->n=n; } complex &operator+(complex &s) { complex c; c.m=m+s.m; c.n=n+s.n; return c; } complex &operator-(complex &s) { complex c; c.m=m-s.m; c.n=n-s.n; return c; } complex &operator*(complex &s) { complex c; c.m=(m*s.m)-(n*s.n); c.n=(n*s.m)+(m*s.n); return c; } complex &operator/(complex &s) { complex c; c.m=((m*s.m)+(n*s.n))/(s.m*s.m+s.n*s.n); c.n=((n*s.m)-(m*s.n))/(s.m*s.m+s.n*s.n); return c; } void show() { if(m==0&&n!=0) cout<<n<<"i"<<endl; else if(n<0) cout<<m<<"-"<<n<<"i"<<endl; else if(n==0&&m!=0) cout<<m<<endl; else cout<<m<<"+"<<n<<"i"<<endl; }private: double m,n;};int main(){ int t; double m,n,m1,n1; char c; cin>>t; for(int i=0;i<t;i++) { cin>>m>>n; complex a(m,n); cin>>c; while(c!='=') { if(c=='+') { cin>>m>>n; complex b(m,n); a=a+b; } else if(c=='-') { cin>>m>>n; complex b(m,n); a=a-b; } else if(c=='*') { cin>>m>>n; complex b(m,n); a=a*b; } else if(c=='/') { cin>>m1>>n1; complex b(m1,n1); a=a/b; } cin>>c; } if(c=='=') { if(m1!=0&&n1!=0) { a.show(); continue; } else { cout<<"divide by zero"<<endl; } } } }
查看完整描述

3 回答

?
慕盖茨8171496

TA贡献3条经验 获得超0个赞

https://img1.sycdn.imooc.com//5b9085170001a27308890615.jpg。。。

查看完整回答
反对 回复 2018-09-06
?
慕盖茨8171496

TA贡献3条经验 获得超0个赞

https://img1.sycdn.imooc.com//5b8f92f800014d3707910561.jpg运行结果

查看完整回答
反对 回复 2018-09-05
?
AAnonymous

TA贡献62条经验 获得超31个赞

回答好像被吞了,再说下

你重载运算符时,返回引用。但是你返回的是你创建的临时对象。运算符调用完成后它会被销毁。注意,这几个运算符重载,调用时实际上是对运算符左边的对象调用他重载的成员运算符,参数是运算符右边的对象。

所以你可以这么做。
1,不必返回引用,直接值返回,返回的是对象的拷贝
2,仍然使用左值引用,返回 *this
3,使用右值引用,返回 std::move(c)

查看完整回答
反对 回复 2018-09-05
  • 慕盖茨8171496
    慕盖茨8171496
    但是题目给的例子运行之后答案没有问题。 这是不是说明运算一个重载运算符之后他没有被销毁,可以进行下一个重载运算符。
  • 慕盖茨8171496
    慕盖茨8171496
    运行结果不能上传,我上传了“我要回答”。
  • AAnonymous
    AAnonymous
    未定义行为不同编译器有不同的结果。你可以换个编译器试试
  • 3 回答
  • 0 关注
  • 2486 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信