注册 登录
编程论坛 C++教室

各位大神帮忙看下哪里出错了??

gonewing 发布于 2013-06-16 22:41, 532 次点击
#include<iostream>

#include<math.h>
using namespace std;
class fushu
{
private:
double x,y;
public:
fushu(double a=0,double b=1);

fushu add(fushu w);
fushu subtract(fushu w);
fushu multiply(fushu w);
fushu divide(fushu w);
fushu mo();
void show();
};
fushu::fushu(double a,double b)
{
 x=a;
 y=b;
}
fushu fushu::add(fushu w)
{
 fushu z;
 z.x=x+w.x;
 z.y=y+w.y;
 return z;
}
fushu fushu::subtract(fushu w)
{
 fushu z;
 z.x=x-w.x;
 z.y=y-w.y;
 return z;
}
fushu fushu::multiply(fushu w)
{
 fushu z;
 z.x=x*w.x-y*w.y;
 z.y=x*w.y+y*w.x;
 return z;
}
fushu fushu::divide(fushu w)
{
 fushu z;
 if(w.x==0&&w.y==0)
 {
  cout<<"作为分母的复数为0,不能相除"<<endl;
  exit(0);
 }
 z.x=(x*w.x+y*w.y)/(w.x*w.x+w.y*w.y);
 z.y=(y*w.x-x*w.y)/(w.x*w.x+w.y*w.y);
 return z;
}
fushu fushu::mo()
{
 fushu z;
 z.x=sqrt(x*x+y*y);
 z.y=0;
 return z;
}
void fushu::show()
{
 cout<<"复数为:"<<x<<"+"<<y<<"i"<<endl;
}


void main()
{
 fushu a(1,2),b(3,4),t;
 t=a.add(b);
 t.show();
 t=a.subtract(b);
 t.show();
 t=a.multiply(b);
 t.show();
 t=a.divide(b);
 t.show();
 t=a.mo();
 t.show();
}
5 回复
#2
rjsp2013-06-17 08:29
“哪里出错了??”应该是你告诉别人
如果是编译不通过,你告诉大家是哪行报什么错误。别人就知道应该去哪儿检查你的语法错误;
如果是运行结果不符合你的预期,你告诉大家你的输入是什么,期待输出是什么,实际输出是什么。别人就知道应该去哪儿检查你的算法错误。
你什么都不说,别人根本不知道你想干什么。
#3
lzj125302013-06-17 08:33
错误提示呢,还有要预期的效果呢
#4
jsjljh2013-06-17 10:42
没有错啊,
复数为:4+6i
复数为:-2+-2i
复数为:-5+10i
复数为:0.44+0.08i
复数为:2.23607+0i
跟预想的结果一样、
#5
gonewing2013-06-17 18:08
回复 2楼 rjsp
没有错,就是没有结果
#6
gonewing2013-06-17 18:14
回复 4楼 jsjljh
昨天还不能出结果的,今天居然能运行了,太神奇了???
1