有一个复数,其实部和虚部分别为c.real和c.imag。
错误出现在";mod=";以及";共轭=";称no operator "=" matches these operands
它还说;mod=";";模算子=%";但我不知道在哪里可以实现%
using namespace std;
class complex {
public:
double real, imag;
complex() {
real = 0; imag = 0;
}
complex(double r, double j) {
real = r; imag = j;
}
complex mod(complex c) {
complex mod; // modulus operator = %
mod = sqrt(pow(c.real, 2) + pow(c.imag, 2));
return mod;
}
complex conjugate(complex c) {
complex conjugate;
if (c.imag >= 0)
conjugate = c.real - c.imag;
else
conjugate = c.real + c.imag;
return conjugate;
}
};
在编程之前,您应该先复习一下您对复数的知识。以及否定一个数字意味着什么(你不需要检查符号来改变它(。
complex conjugate(complex c) {
return complex(c.real, -c.imag);
}
话虽如此,只要在#include<complex>
中使用std::complex<double>
,当然,除非这是家庭作业问题。
同样,从代码中的注释中,您将复数的模(或绝对值、范数或std::norm
(与整数除法的模运算(在C++中表示为%
(严重混淆。