在 C++ 中将定义的结构转换为双精度(复数)
Converting a defined structure into double (complex numbers) in c++
我试图找到定义结构的方法,并将其编码以定义复数。我已经成功地与他们合作,例如添加乘法,但我不知道如何将我的复数的绝对值转换为双精度数,我的编译器一直告诉我它不知道如何转换它,即使复杂结构是字面上由 2 个双打组成..
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
struct Complex_Number {
double re, im;
};
void print(const Complex_Number& w) //my print function for complex numbers
{
cout << '(' << w.re << " + i*" << w.im << ')';
}
double abs(const Complex_Number& z )
{
z = z.re + z.im;
abs = sqrt((z.re*z.re)+(z.im*z.im));
return abs;
}
int main()
{
return 0;
}
我不知道你z = z.re + z.im
的意图;第二部分只需要分配给一个变量或直接返回。所以写...
double abs(const Complex_Number& z ) {
double ret = sqrt((z.re*z.re)+(z.im*z.im));
return ret;
}
或
double abs(const Complex_Number& z ) {
return sqrt((z.re*z.re)+(z.im*z.im));
}
在您的代码中为 "function name" 赋值,即 abs = sqrt((z.re*z.re)+(z.im*z.im))
不是有效的 C++ 代码。
我试图找到定义结构的方法,并将其编码以定义复数。我已经成功地与他们合作,例如添加乘法,但我不知道如何将我的复数的绝对值转换为双精度数,我的编译器一直告诉我它不知道如何转换它,即使复杂结构是字面上由 2 个双打组成..
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
struct Complex_Number {
double re, im;
};
void print(const Complex_Number& w) //my print function for complex numbers
{
cout << '(' << w.re << " + i*" << w.im << ')';
}
double abs(const Complex_Number& z )
{
z = z.re + z.im;
abs = sqrt((z.re*z.re)+(z.im*z.im));
return abs;
}
int main()
{
return 0;
}
我不知道你z = z.re + z.im
的意图;第二部分只需要分配给一个变量或直接返回。所以写...
double abs(const Complex_Number& z ) {
double ret = sqrt((z.re*z.re)+(z.im*z.im));
return ret;
}
或
double abs(const Complex_Number& z ) {
return sqrt((z.re*z.re)+(z.im*z.im));
}
在您的代码中为 "function name" 赋值,即 abs = sqrt((z.re*z.re)+(z.im*z.im))
不是有效的 C++ 代码。