我正在尝试编码一种计算复数的模和复共轭的方法,但=号给出了一个错误

  • 本文关键字:方法 错误 一个 一种 计算 编码 c++
  • 更新时间 :
  • 英文 :


有一个复数,其实部和虚部分别为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++中表示为%(严重混淆。

最新更新