一道C++题目,求助,急,在线等~~~~~~

题目如下:
根据下面主程序的提示,定义一个类complex,用友元运算符函数进行复数重载运算符“+”、“-”运算,复数的实部real和虚部imag均为double型。
#include<iostream.h>
class complex;
void mian()
{
complex A1(5.8,6.3),A2(4.7,5.2), A3, A4; // 定义4个复数类对象
A3=A1+A2; //复数相加
A4=A1-A2; //复数相减
}

第1个回答  2011-02-25
class complex
{
public
complex(double real=0.0, double imag=0.0):m_real(real),m_imag(imag) {}
friend complex operator + (const complex& lhs, const complex& rhs)
{
return complex(lhs.m_real+rhs.m_real,lhs.m_imag+rhs.m_imag);
}
friend complex operator - (const complex& lhs, const complex& rhs)
{
return complex(lhs.m_real-rhs.m_real,lhs.m_imag-rhs.m_imag);
}
private:
double m_real;
double m_imag;
};

1. 楼上两位的回答是错误的,楼上的两位,只要把friend去掉就对了。
2. C++里有标准类complex,只要
#include <complex>
using namespace std;
complex<double> a1,a2;
这就可以了。
第2个回答  2011-02-25
用反证法证
假设三个方程没有一个方程有两个相异实根
那么,4b^2-4ac<=0且4c^2-4ab<=0且4a^2-4bc<=0
得到2b^2-2ac<=0……(1)
2c^2-2ab<=0……(2)
2a^2-2bc<=0……(3)
三式相加:2b^2-2ac+2c^2-2ab+ 2a^2-2bc<=0
(a-b)^2+(b-c)^2+(a-c)^2<=0
那么a=b=c,与已知 a,b,c是互不相等的非零实数矛盾,
所以假设不成立,即原命题成立

参考资料:百度一下

第3个回答  2011-02-25
要说明的是你的程序里这句class complex是多余的吧。
class complex
{
double _x,_y;
public:
complex(double x=0,double y=0):_x(x),_y(y){}
complex friend operator+(const complex&z);
complex friend operator-(const complex&z);
};

complex friend complex::operator+(const complex&z)
{
complex c;
c._x=_x+z._x;
c._y=_y+z._y;
return c;
}
complex friend complex::operator-(const complex&z)
{
complex c;
c._x=_x-z._x;
c._y=_y-z._y;
return c;
}
第4个回答  2011-02-25
class complex
{
private:
double real;
double imag;
public:
complex(double r = 0.0, double i = 0.0) {real = r; imag = i;}
friend complex operator+(const complex &x){complex temp(real+x.real, imag+x.imag); return temp;}
friend complex operator-(const complex &x){complex temp(real-x.real, imag-x.imag); return temp;}
};本回答被提问者采纳

一道C++编程题目,求大神帮忙,有没有简单点的算法,求程序!!答得好可以...
思路如下:1.对于第八列,和计算完成后,不管找没找到值,寻找当前列下一行(即i+1),无需进入下一列;2.对于非第八列,有两种情况:a.和大于等于最大值10(如果矩阵中有零值存在,此处应为大于10),不满足路径条件,没必要进入下一列计算,进入当前列下一行进行计算(即i+1);b.满足条件,则...

一道C++的问题,哪位大神帮帮忙啊,新手压力很大啊。。。
这个一个考验对指针理解的题目,上面程序在运行之后:1,调用GetMemory( str )后, str并未产生变化,依然是NULL.只是改变的str的一个拷贝的内存的变化 2,strcpy( str, "hello world" );程序运行到这将产生错误。3,new的时候有可能内存出错,应该在*p = (char *) malloc( num ); 后判断内存...

一道C++的题目 急!!!
问题一,你那个静态属性需要再外面定义下。你可以直接在main函数上面加一句 double SavingAccount::annualInterestRate= 0.0;上面说的是一个语法问题。另外,你这似乎还有个设计问题。如果如你这样写的话,也大体能做到你的效果。但是类的成员属性 savingsBalance就没起到作用了。正常情况下应该是将 这200...

求大神回答!!!C++急急急!!
回答:您好,很高兴回答您的问题。 您这个题目最后的结果为-11.其实这个是典型的递归调用,输入7,表示求f(7)的结果,通过分析程序,知道求f(7),要求出f(5)-f(6),算f(5)要算出f(3)-f(4),算f(6)要算出f(4)-f(5),以此类推,得到f(7)=5f(1)-8f(2)=5-16=-11。您可以自己试着分析...

题目2.5,C++作业,今天就收作业了!求大神帮忙!!用C++编程,急啊!!
p=p->next; } return;}int main(){ \/\/建立三个节点的有序链表 printf("1.建立含有三个节点的链表,并使其有序\\n"); struct Node *l = malloc(sizeof(struct Node)); l->data = rand(); l->next = NULL; int i; struct Node *p,*q; struct ...

在线等c++题解 急急急!!!
就在打勾的这几道题啊!第一种情况:如果x>=a时,C最糟糕的得分是A打勾的a题全对,因为这部分C全打叉,所以这部分C只能得0分,剩下的选择和A相同,所以C最少得分是x-a。比如总共10题,A打勾了6题得8分,对C来讲最不好的情况就是A打勾的这6题全对,A这部分得6分,而C这部分题得0...

c++ 有一道题目麻烦各位帮我看看我做的哪里错了,谢谢!
一开始就错了。既然是用switch语句,那么p是整型,而不能定为实型。从各个奖金的区间来看,你分的各种case基本都错了,从case 2开始,后面都错了。而且题目没有如果输入p的值是负数的错误提示。整个程序基本上错得差不多了。

c++基础题。谢谢。说在线等急会不会多点人。。
int main(){ int nCount = 0;cin >> nCount;int* arrData = new int[nCount]; \/\/ 存放所有数据 int nTmpData = 0;bool bHadRepeat = false;for (int i = 0; i < nCount; i++){ cin >> nTmpData;arrData[i] = nTmpData;int nRepeatCount = 0; \/\/ 重复数据个数 for (int...

C++编程问题,在线等,快!谢谢!
第一个程序 应该没有问题,不过是不是你会得到错误的值。我也不知道你的兔子是怎么算,不能帮你改 第二个程序 你需要一个for语句 cout<<"请输入8人的钱: ";for(i=0;i<8;i++)cin>>a[i];第三个程序 把a=fz\/fm;写到for里面,要不然不会重复得到fz\/fm的值。改成这样 for(int i=1;...

跪求!跪求!跪求! 一道c++ #C\/C++
int main(){ int a, at, b, bt, c;int m, n, p;scanf("%d%d%d", &a, &at, &b, &bt, &c);m = (a * at - b * bt) \/ (at - bt);\/\/每天所长草的份数 n = a * at - at * m;\/\/草场原有草的份数 p = n \/ (c - m);printf("假设每头牛每天吃一份草\\n...

相似回答